- 新しいデータと近傍の教師データとの距離を元に事後確率を計算します。
- 事後確率にコスト行列を掛けた値を"スコア"とし、最も小さい値を持つラベルが予測結果として選ばれます。
最近傍法では誤判別のコストをオプションで指定できますが、実際はどのような計算が行われていますか?
1 回表示 (過去 30 日間)
古いコメントを表示
MathWorks Support Team
2016 年 11 月 11 日
回答済み: MathWorks Support Team
2016 年 11 月 11 日
ウェビナー「MATLABを使った予知保全・故障予測」
の中で fitcknn 関数のオプションにコスト行列を指定し、予測精度を調節していますが実際にはどのような計算が行われているか、教えてください。
採用された回答
MathWorks Support Team
2016 年 11 月 11 日
使用する学習アルゴリズムによって実装内容が異なりますが、ウェビナーで使用しているKNN(最近傍法)の場合は、以下のステップで、新しいデータのラベルを予測を行います。
例えば、ウェビナーのデモの様に、4 つのラベルを持つ教師データで、距離から求められた事後確率が
>> Post = [0.25, 0.25, 0.25, 0.25]
とすべて同じ確率であったとします。この場合に例えばコスト行列が
>> Cost = [0,5,5,5; 1,0,1,1; 1,1,0,1; 1,1,1,0]
Cost =
0 5 5 5
1 0 1 1
1 1 0 1
1 1 1 0
とすると、スコアが
>> Post*Cost
ans =
0.7500 1.7500 1.7500 1.7500
と計算された結果、1つ目のラベルが予測結果として選ばれます。
MATLAB R2016b では、$(MATLABROOT)\toolbox\stats\classreg\ClassificationKNN.m の 711 行あたりの処理が上記に該当します。
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Statistics and Machine Learning Toolbox についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!