協調フィルタリングを用いた

協調フィルタリングを用いた
プロジェクトコスト超過の予測
奈良先端科学技術大学院大学 情報科学研究科
○本村拓也 柿元健 角田雅照
大杉直樹 門田暁人 松本健一
IEICE SS2005-39 (2005-08)
開発プロジェクトのコスト超過
• 開発プロジェクトのコスト超過が問題となっている
– コスト超過は利益率を低下させる
– 大規模プロジェクトでコスト超過が起これば,小規模プロ
ジェクトで得た利益が容易に損なわれる
• 02年度に全米で実施された調査の結果,プロジェクトあたりの,
実施コストに対する超過コストの割合は平均43%であった[1]
[1] The Standish Group International, Inc., “2003 CHAOS Chronicles Report,” 2003.
コスト超過の予測方法と問題点
• 過去,及び,現行プロジェクトの,定量化したリスク
要因を根拠に用いて予測を行う[2]
– リスク要因
• プロジェクトに含まれる,コストへの影響を持つと考えられる要因
(例:機能要求の明確さ,顧客との関係 )
• 定性的に一定段階の数値などで評価され,定量化される
• 予測の根拠となるリスク要因の評価値が記録され
ず穴あきの値(欠損値)となる場合が多く存在する
– 部署やプロジェクト間の,定義されたリスク要因の差異
– 評価担当者による評価忘れ
– 従来手法である線形判別分析では,欠損値が多くなると
(40%以上),予測精度が著しく低下する[3]
[2] Project Management Institute, A Guide to the Project Management Body of Knowledge 2000 Edition, Project
Management Institute, 2000.
[3] trike, K., El Eman, K., and Madhavji, N.: Software Cost Estimation with Incomplete Data. IEEE Trans. on Soft. Eng.,
vol.27, no.10, pp.890-908 (2001).
目的とアプローチ
• 目的
– 計測データに欠損値が多い場合でも,コストが超過する
プロジェクトを高い精度で判別する手法を提案する
• アプローチ
– コスト超過プロジェクトの判別に協調フィルタリング(CF)を
適用する
• 欠損値による予測精度への影響が小さい[4]
– 判別の精度を実験により評価する
• 企業で行われたプロジェクトで収集された,リスク評価値のデータ
を用いる
• 評価のために,線形判別分析を比較対象とする
– 線形判別分析を行うには,欠損値の処理作業が必要である
[4] 角田雅照, 大杉直樹, 門田暁人, 松本健一, 佐藤慎一, “協調フィルタリングを用いたソフトウェア開発工数予測方法,” 情報処理学会
論文誌, Vol.46, No.5, pp.1155-1164, 2005.
協調フィルタリング
• 協調:複数のユーザの知識を利用して
• フィルタリング:大量のアイテムの中から,役立つア
イテムだけを選び出す(推薦する)
F が良い!
K が好き!
F
?
user Y
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
K
?
user X
user Z
好みの傾向が類似したユーザ
大量のアイテム
協調フィルタリング
(応用例:Amazon.co.jpの書籍推薦システム)
1. 各ユーザが,読んだ本を 5 段階で評価する
2. 好みの傾向が似たユーザが高く評価した本を推薦
コスト超過予測へのCFの応用
(予測に用いるデータ)
• プロジェクトの定量的なリスク評価と,コスト超過の
評価値データ
– 各リスク要因の評価値 : 0 (危険無) ~ 3 (危険高)
– コスト超過の評価値 : 0 (良),1(不良)
• 不良:コスト超過の度合が社内規定において許容範囲外だった
予測対象
プロジェクト
プロジェクト A
プロジェクト B
プロジェクト C
リスク
書籍 1
要因 1
0
リスク
書籍 2
要因 2
1
リスク
書籍 3
要因 3
3
リスク コスト超過
書籍 4 書籍 5
要因 4 評価値
3
?
(危険無)
(危険低)
(危険高)
(危険高)
(不明)
0
?
3
3
1
(危険無)
(欠損値)
(危険高)
(危険高)
(不良)
0
2
?
3
1
(危険無)
(危険中)
(欠損値)
(危険高)
(不良)
?
3
0
0
0
(欠損値)
(危険高)
(危険無)
(危険無)
(良)
コスト超過予測へのCFの応用
(ユーザベースCF)
1. 類似度計算:予測対象プロジェクトと他プロジェクト間の類似度
を求める
2. 予測値計算:類似度の高い 上位k 件のプロジェクトの評価値を
類似度で加重平均し,コスト超過評価値の予測値を算出する
予測対象
プロジェクト
プロジェクト A
プロジェクト B
プロジェクト C
リスク
要因 1
0
リスク
要因 2
1
リスク
要因 3
3
(危険無)
(危険低)
(危険高)
(危険高)
(不良)
(不明)
0
?
3
3
1
(危険無)
(欠損値)
(危険高)
(危険高)
(不良)
0
2
?
3
1
(危険無)
(危険中)
(欠損値)
(危険高)
(不良)
?
3
0
0
0
(欠損値)
(危険高)
(危険無)
(危険無)
(良)
リスク コスト超過
要因 4 評価値
3
?
0.92
予測する
類似度: 1.00
類似度: 0.92
類似度:–0.97
コスト超過予測へのCFの応用
(アイテムベースCF)
1. 類似度計算:コスト超過評価値とリスク要因間の類似度を求める
2. 予測値計算:類似度の高い上位k 件のリスク要因の評価値を類
似度で加重平均し,コスト超過評価値の予測値を算出する
予測対象
プロジェクト
プロジェクト A
プロジェクト B
プロジェクト C
類似度
0.37
リスク
要因 1
0
類似度
0.30
リスク
要因 2
1
類似度
0.43
リスク
要因 3
3
類似度 予測する
0.45
リスク コスト超過
要因 4
評価値
3
?
0.73
(危険無)
(危険低)
(危険高)
(危険高)
(不良)
(不明)
0
?
3
3
1
(危険無)
(欠損値)
(危険高)
(危険高)
(不良)
0
2
?
3
1
(危険無)
(危険中)
(欠損値)
(危険高)
(不良)
?
3
0
0
0
(欠損値)
(危険高)
(危険無)
(危険無)
(良)
実験(概要)
• 目的
– CFを用いたコスト超過予測が,従来手法である線形判別分
析と比べて,有効となり得るか否か明らかにする
• 3種類の方法を用いて予測を行い,精度を比較した.
– ユーザーベースCF (類似度計算:Cosine-similarity)
– アイテムベースCF (類似度計算:Pearson-similarity)
– 線形判別分析
•
複数の変数(リスク評価値)に基づいて一次の判別関数を作成し,
サンプルデータ(プロジェクト)が2つの群(良:不良)のどちらに属
すかを判別する手法
– 欠損値処理を行う必要がある (今回は,平均値挿入法を用いた)
– ステップワイズ法による変数選択を適用
用いたデータ
• ある企業において過去に行われたプロジェクトで作成され
たリスク要因の評価データ
– 実施時期や規模,形態が異なる全45件のプロジェクト
– 199のリスク要因が含まれた
– 多量の欠損値が含まれた
各フェーズ別のリスク要因欠損率
平均非欠損率
平均欠損率
0.00%
25.00%
基本
提案時要求関係
提案時見積関係
受注時要求関係
50.00% 75.00% 100.00%
100.00%
47.68%
36.39%
69.39%
0.00%
52.32%
63.61%
30.61%
受注時見積関係
54.43%
45.57%
受注時契約関係
56.30%
43.70%
全項目
57.72%
42.28%
手順
1.
2.
3.
4.
5.
実験データを2等分し,フィットデータとテストデータを作成する
予測対象プロジェクトを決定し,コスト超過の評価値を隠蔽する.
隠蔽した評価値を予測する
予測値を閾値で二値化しコスト超過(不良)プロジェクトを判別
2~4をテストデータの全プロジェクトで行い,精度を評価した
予測対象
プロジェクト
プロジェクト A
プロジェクト B
プロジェクト C
リスク
要因 1
0
リスク
要因 2
2
(危険無)
(危険中)
0
?
リスク
要因 3
3
リスク コスト超過
要因 4 評価値
予測値
?
1
3
予測する
(不良)
(危険高) (危険高) (予測対象)
0.89
3二値に変換
3
1
類似度:1.0
(閾値:0.5)
(危険高)
(危険無) (欠損値) (興味大)
比較(評価)
(不良)
0
2
(危険無)
(危険中)
(不良)
?
3
(欠損値)
(危険高)
? 予測値 3
(欠損値) 1(危険高)
0
0
(危険無)
(危険無)
1
0
(良)
類似度:0.98
類似度:–0.97
精度評価指標
• 適合率
– 不良”1”と判別されたプロジェクト(Nr件)のうち,実際に不
良”1” だったプロジェクト(Na件)の割合
• 再現率
Na
適合率=
Nr
– 実際に不良”1”だったプロジェクト(Nu件)のうち,不良”1”
と判別されたプロジェクト(Nr件)の割合
Nr
再現率=
Nu
• 適合率と再現率はトレードオフの関係にある
例:予測値の閾値を極端に低く設定すると,
不良プロジェクトが極端に増え,再現率は高くなるが,適合率は低くなる
精度評価指標
• F1値 [5]
– 適合率と再現率を1つの値で表現する指標
2  再現率 適合率
F1値 
再現率  適合率
• F1値が大きいほど,予測精度が高いことを表す
[5] J. Herlocker, J.A. Konstan, L.G. Terveen, and J.T. Riedl, “Evaluating collaborative filtering recommender systems,” ACM Trans.
on Information Systems, Vol.22, No.1, pp.5-53, 2004.
結果
• ユーザベースCFによる予測から,最も高い精度が
得られた
– ユーザベースCFを用いたプロジェクトのコスト超過予測
の有効性が確認できた
• アイテムベースによる予測では,特に再現率におい
て線形判別分析と比較して高い精度が得られた
ケーススタディの結果:各評価基準の値
適合率
再現率
F1値
ユーザベースCF
0.73
1.00
0.84
アイテムベースCF
0.59
0.91
0.71
線形判別分析
0.62
0.73
0.67
考察
• CFの精度に関して
– 実験に用いたデータの欠損値が非常に多い(平均欠損率
40%以上)ので,線形判別分析よりもCFの精度が高く
なったと考えられる
• ユーザベースCFの精度が非常に高かったという結
果から
– リスク評価の観点から,不良プロジェクトと似たプロジェク
トは,不良プロジェクトになる可能性が高いということが,
実験に用いたデータの上では定量的に裏付けられた
ケーススタディの結果:各評価基準の値
適合率
再現率
F1値
ユーザベースCF
0.73
1.00
0.84
アイテムベースCF
0.59
0.91
0.71
線形判別分析
0.62
0.73
0.67
課題
• プロジェクトのフェーズの推移と予測精度の変化の
関係を明らかにする
– 異なるフェーズで予測を行い,精度を比較する
• CFで変数選択を行う
– 線形判別分析では変数選択法を適用している
– 変数選択を行いコスト評価値への影響が低いリスク項目
を特定し,特定した項目を除去した上で予測(CF)を行う
• 予測結果の一般性を高める
– より多数,かつ,多様なプロジェクトが含まれるデータセッ
トを用いての予測実験と評価を行う
協調フィルタリングを用いた
プロジェクトコスト超過の予測
奈良先端科学技術大学院大学 情報科学研究科
○本村拓也 柿元健 角田雅照
大杉直樹 門田暁人 松本健一
IEICE SS2005-39 (2005-08)