モデル構築よりも類似プロジェクト検索

事例紹介:見積もり精度の比較 今回は、協調フィルタリング技術を用いた工数見積もり(CF法)の具体的な事例を紹介するともに、従来の工数見積もりモデルにはない新たな可能性について述べる。

松本 健一

2008年10月27日 20:00

事例紹介:見積もり精度の比較

 今回は、協調フィルタリング技術を用いた工数見積もり(CF法)の具体的な事例を紹介するともに、従来の工数見積もりモデルにはない新たな可能性について述べる。

 最初に、重回帰分析により構築された見積もりモデル(重回帰分析モデル)とCF法による見積もりモデル(CFモデル)の見積もり精度を比較した結果を紹介する。比較に利用したソフトウエア開発データは、NTTデータにおいて、約10年間にわたり1,081件のソフトウエア開発プロジェクトで収集、蓄積されたものである。利用したプロジェクト特性は14個(説明変数13個+目的変数1個)、データ欠損率は約60%であった。

 比較対象とした重回帰分析モデルは、「欠損値処理法を用いたステップワイズ重回帰分析」によるものである。重回帰分析では、多数の説明変数の候補(プロジェクト特性)の中から、見積もり精度の向上に寄与すると考えられるものを選択して回帰式(見積もりに用いる一次式)を作成する方法をとる。ステップワイズ重回帰分析とは、変数選択においてステップワイズ変数選択法を用いる手法である。その詳細は文献(http://se.naist.jp/achieve/pdf/181.pdf)を参照されたい。

 対象データに欠損がある場合、欠損値を含むプロジェクトを除外したり、欠損値を何らかの値で補完したり、といった前処理(欠損値処理)が必要となる。重回帰分析では、次の3つの欠損値処理法が広く用いられている。

 1つ目が「リストワイズ除去法」だ。これは欠損値を1つでも含むプロジェクトはすべて分析対象から除去する。

 2つ目が「ペアワイズ除去法」で、重回帰分析では、説明変数(プロジェクト特性)のすべての組み合わせ(説明変数のペア)について相関を求める。その際、ペアとした説明変数の値がどちらか一方でも欠損しているプロジェクトは除去する。

 3つ目が「平均値挿入法」だ。この方法ではプロジェクトの除去は行わず、説明変数(プロジェクト特性)ごとに、得られている値の平均値を求め、欠損部分に代替値として挿入する。

 以上3つの欠損値処理法をそれぞれ用いたステップワイズ重回帰分析モデルとCFモデルで試験工数の見積もりを行った場合の精度(平均相対誤差)を図1-1に示す。

利用データ数別の重回帰分析モデルとCFモデル

 結果は明らかである。相対誤差が小さいほど見積もり精度の高いことを意味するが、CFモデルによる相対誤差は0.79、重回帰分析モデルでは、平均値挿入法を用いた場合でも22.11で、その差は約28倍である。もちろんこの結果は一例にすぎないが、約60%という高いデータ欠損率の下では、欠損値処理法を併用したとしても、重回帰分析モデルの見積もりには限界があるようである。

 では、データ欠損がなければ、重回帰分析モデルによる見積もりの方が高い精度が得られるのであろうか。必ずしもそうとは限らない。図1-2は、先ほどと同じ1,081件のソフトウエア開発プロジェクトのデータのうち、データ欠損のない140プロジェクトの9個の説明変数(プロジェクト特性)を使って試験工数を見積もった結果である。

 縦軸は見積もりの相対誤差(中央値)を表す。一方、横軸は、利用可能データ数(プロジェクト数)である。つまり、重回帰分析においては、モデル構築に利用したデータ数であり、CF法においては、見積もり対象プロジェクトとの類似度を評価したプロジェクト数である。

 これを見ると、利用可能データ数(プロジェクト数)が少ないうちは、重回帰分析モデルの方がCFモデルよりも高い見積もり精度となっているが、利用可能データ数が50件を超えたあたりから両者の関係は逆転する。しかも、利用可能データ数が増えるにつれて、CF法ではわずかながらも見積もり精度が向上する(誤差が小さくなる)傾向にあるが、重回帰分析モデルでは、必ずしもそうはなっていない。

 このグラフの意味するところは非常に興味深い。一般に、利用できるソフトウエア開発データ(実績データ)が多いほど精度の高い見積もりモデルを構築できるといわれている。しかし、多様なソフトウエア開発プロジェクトのデータで重回帰分析モデルを構築すると、その適用範囲は広くなるかもしれないが、最大公約数的なモデルとなり、個々のプロジェクトでの見積もり精度は必ずしも高くならない可能性がある。これでは、実績データを収集し蓄積しようという開発者のインセンティブがなくなってしまう。

 一方、CF法では、実績データが蓄積されるほど、見積もり対象プロジェクトと類似度の高いプロジェクトが含まれる可能性が高くなるので、適用範囲が広くなると共に見積もり精度も向上する可能性がある。しかも、データ欠損に強いので、含まれるデータの種類が多少異なっても気にせず蓄積していけばよい。

 両者のこの差は、実用上非常に大きいのではないだろうか。

 では、CF法においてどれぐらいの欠損まで許容されるのであろうか。2つ目の事例として、データ欠損に対するロバスト性について紹介する。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30