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

ウェビナー「MATLABを使った予知保全・故障予測」 
の中で fitcknn 関数のオプションにコスト行列を指定し、予測精度を調節していますが実際にはどのような計算が行われているか、教えてください。

 Accepted Answer

MathWorks Support Team
MathWorks Support Team on 11 Nov 2016

1 vote

使用する学習アルゴリズムによって実装内容が異なりますが、ウェビナーで使用している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 行あたりの処理が上記に該当します。 
 

More Answers (0)

Categories

Find more on Statistics and Machine Learning Toolbox in Help Center and File Exchange

Products

Release

R2016b

Community Treasure Hunt

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

Start Hunting!