[論文レビュー] Using Source Code Metrics and Ensemble Methods for Fault Proneness Prediction
本稿では、予測精度を向上させるとともに故障除去コストを低減するために最適化されたソースコードメトリクスを用いたアンサンブルベースの故障予測フレームワークを提案する。45のオープンソースプロジェクトにわたり、精選されたメトリクス群を用いてMajority Voting Ensemble (MVE)を適用することで、個々のモデルと比較して優れた性能と低いコストを達成した。特に、故障クラス割合が55%未満のプロジェクトにおいて顕著な効果を示した。
Software fault prediction model are employed to optimize testing resource allocation by identifying fault-prone classes before testing phases. Several researchers' have validated the use of different classification techniques to develop predictive models for fault prediction. The performance of the statistical models are proven to be influenced by the training and testing dataset. Ensemble method learning algorithms have been widely used because it combines the capabilities of its constituent models towards a dataset to come up with a potentially higher performance as compared to individual models (improves generalizability). In the study presented in this paper, three different ensemble methods have been applied to develop a model for predicting fault proneness. The efficacy and usefulness of a fault prediction model also depends on the source code metrics which are considered as the input for the model. In this paper, we propose a framework to validate the source code metrics and select the right set of metrics with the objective to improve the performance of the fault prediction model. The fault prediction models are then validated using a cost evaluation framework. We conduct a series of experiments on 45 open source project dataset. Key conclusions from our experiments are: (1) Majority Voting Ensemble (MVE) methods outperformed other methods; (2) selected set of source code metrics using the suggested source code metrics using validation framework as the input achieves better results compared to all other metrics; (3) fault prediction method is effective for software projects with a percentage of faulty classes lower than the threshold value (low - 54.82%, medium - 41.04%, high - 28.10%)
研究の動機と目的
- アンサンブル手法を用いて複数の機械学習モデルを統合することで、故障予測の精度を向上させること。
- モデル性能を向上させる最小限で高影響力を持つソースコードメトリクスの特定と検証を行うこと。
- Wagnerら[21]およびJones[6]に基づくコスト評価モデルを用いて、故障予測モデルの経済的影響を評価すること、特に正規化故障除去コストなどのコスト評価指標を用いること。
- 故障予測が経済的に非効率になるようになる故障クラスの割合の閾値を特定すること。
- 多様なオープンソースソフトウェアプロジェクトにわたり一般化可能な結果を得ることで、モデルの一般化能力を向上させること。
提案手法
- ロジスティック回帰、人工ニューラルネットワーク(ANN)、および径路基底関数(RBF)ネットワークをベースラーナーとして用い、Majority Voting Ensemble (MVE)、Bagging、Stakingの3つのアンサンブル手法を採用した。
- 冗長的または低影響力のメトリクスを除外するための検証フレームワークを用いて、WMC、CBO、LCOM、循環的複雑度(CC)を含む16の主要メトリクスに絞り込んだ。
- 精度とF-Measureを用いて故障予測のパフォーマンスを算出し、統計的有意性はウィルコクソン符号順位検定により評価した。
- Wagnerら[21]およびJones[6]に基づくコスト評価モデルを統合し、推定故障除去コスト($E_{cost}$)とテストコスト($T_{cost}$)を計算することで、経済的効率性を評価した。
- 故障クラスの割合に基づいて故障予測の有用性の確率をモデル化するため、ロジスティック回帰を用い、$P_{fault}$の閾値を0.5とした。
- PROMISEリポジトリを用いて、45の実世界のオープンソースJavaプロジェクトを収集し、クロスプロジェクト評価を実施することで、多様で現実的なデータセットカバレッジを確保した。
実験結果
リサーチクエスチョン
- RQ1多様なソフトウェアプロジェクトにおいて、どのアンサンブル手法が最も高い故障予測精度を達成するか?
- RQ2全メトリクスを用いるのと比較して、精選された、検証済みのメトリクスセットを用いることで予測性能が向上するか?
- RQ3ソフトウェアプロジェクト内の故障クラスの割合に応じて、故障予測モデルの経済的効率性はどのように変化するか?
- RQ4故障クラスの割合がどの閾値を超えると、故障予測が経済的にあまり有用ではなくなるか?
- RQ5最適化されたメトリクスを用いた提案されたアンサンブルモデルは、複数のオープンソースプロジェクトにおいて一貫して個々の分類器を上回る性能を示せるか?
主な発見
- Majority Voting Ensemble (MVE)は他のアンサンブル手法を上回り、中央値精度が最も高く、正規化故障除去コストが最低であった。
- 精選されたメトリクスセットを用いたモデルは、全メトリクスを用いたモデルと比較して有意に高い性能を示した(ウィルコクソン符号順位検定によるp値 < 0.05)。
- 故障予測は、故障クラス割合が54.82%(低)、41.04%(中)、28.10%(高)未満のプロジェクトにおいて最も効果的であり、コストパrameterに依存する。
- MVEベースのモデルは、正規化故障除去コスト($NE_{cost}$)の中央値が低く、他の技術と比較して故障除去コストをより効果的に低減した。
- ロジスティック回帰モデルにより、故障クラスの確率が0.5未満である場合に故障予測が有用であることが確認された。特定のコストパrameterでは、LOGRの閾値が38.14%、ANNの閾値が48.75%であった。
- コスト評価フレームワークにより、故障率がプロジェクト固有の閾値未満である場合にのみ、故障予測が経済的に有益であることが示され、実用的応用の妥当性が裏付けられた。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。