最近傍法では誤判別の​コストをオプションで​指定できますが、実際​はどのような計算が行​われていますか?

1 回表示 (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2016 年 11 月 11 日
回答済み: MathWorks Support Team 2016 年 11 月 11 日
ウェビナー「MATLABを使った予知保全・故障予測」 
の中で fitcknn 関数のオプションにコスト行列を指定し、予測精度を調節していますが実際にはどのような計算が行われているか、教えてください。

採用された回答

MathWorks Support Team
MathWorks Support Team 2016 年 11 月 11 日
使用する学習アルゴリズムによって実装内容が異なりますが、ウェビナーで使用しているKNN(最近傍法)の場合は、以下のステップで、新しいデータのラベルを予測を行います。 
  1. 新しいデータと近傍の教師データとの距離を元に事後確率を計算します。 
  2. 事後確率にコスト行列を掛けた値を"スコア"とし、最も小さい値を持つラベルが予測結果として選ばれます。 
例えば、ウェビナーのデモの様に、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 件)

カテゴリ

Help Center および File ExchangeStatistics and Machine Learning Toolbox についてさらに検索

製品


リリース

R2016b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!