2025年10月25日
今週の活動
バグ予測モデルのクラス分類の根拠の分析
Elasticsearch
10分割交差検証による予測指標の変化

決定木における重要度の高い特徴量

決定木における分類条件、クラス、確信度

特徴量の値の分布

ランダムフォレストにおける重要度の高い特徴量

Partial Dependence Plotによる陽性確率の分布

Hazelcast
10分割交差検証による予測指標の変化

決定木における重要度の高い特徴量

決定木における分類条件、クラス、確信度

特徴量の値の分布

ランダムフォレストにおける重要度の高い特徴量

Partial Dependence Plotによる陽性確率の分布

Netty
10分割交差検証による予測指標の変化

決定木における重要度の高い特徴量

決定木における分類条件、クラス、確信度

特徴量の値の分布

ランダムフォレストにおける重要度の高い特徴量

Partial Dependence Plotによる陽性確率の分布

OrientDB
10分割交差検証による予測指標の変化

決定木における重要度の高い特徴量

決定木における分類条件、クラス、確信度

特徴量の値の分布

ランダムフォレストにおける重要度の高い特徴量

Partial Dependence Plotによる陽性確率の分布

Neo4j
10分割交差検証による予測指標の変化

決定木における重要度の高い特徴量

決定木における分類条件、クラス、確信度

特徴量の値の分布

ランダムフォレストにおける重要度の高い特徴量

Partial Dependence Plotによる陽性確率の分布

得られた成果
- 交差検証のフェーズごとの予測精度の変化について
- 現在は各プロジェクトのデータセットの初めの3,000行を対象としてモデルを学習させているが、F1スコアが不安定であり、最悪と最良のフェーズを比較すると0.1前後の誤差がある
- 決定木における重要度の高い特徴量について
- 変更されたファイル数(num_files)、トークン数の変化量(tokens_change)、変更対象となったファイルの平均行数(lines_per_file)は多くのプロジェクトにおいて重要度が高い
- 決定木における分類条件、クラス、確信度について
- データを陽性クラスに分類するノードの数が以前よりも増え、陽性クラスの分類における確信度も増加
- 特徴量の値の分布について
- 変化量や変化率を表す特徴量は値の小さなものの割合が大きく、それらの値が大きくなるにつれてその値をとるデータの割合が減る
- ランダムフォレストにおける重要度の高い特徴量について
- 変更されたファイル数、トークン数の変化量、変更対象となったファイルの平均行数に加え、追加されたコード行数の割合(lines_added_ratio)、削除されたコード行数の割合(lines_deleted_ratio)も重要度が高い
- Partial Dependence Plotによる陽性確率の分布について
- 変更されたファイル数、変更対象となったファイルの平均行数は値が大きくなるにつれて陽性確率が下がる
- 追加されたコード行数の割合、削除されたコード行数の割合はプロジェクトによって陽性確率の変化との関係性に違いがある
- 例えば、Elasticsearchプロジェクトの場合は追加されたコード行数の割合が大きいほど陽性確率が増加するが、Hazelcastの場合はコード行数の割合が大きいほど陽性確率が低下
直面した課題
- どうして変更されたファイル数が増えるほど陽性確率が下がる傾向にあるのか?
- どうして変更対象となったファイルの平均行数が増えるほど陽性確率が下がる傾向にあるのか?
- 追加されたコード行数の割合や削除されたコード行数の割合が陽性確率に与える影響がプロジェクトによって違うのはなぜか?
来週の計画
- 陽性クラス(欠陥を含むメソッド)の分類性能が決定木レベルで改善されたことを確認できたため、次はレビューの労力削減効果をCost-Benefit Curveを描画することで確認
