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

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

 채택된 답변

MathWorks Support Team
MathWorks Support Team 2016년 11월 11일

1 개 추천

使用する学習アルゴリズムによって実装内容が異なりますが、ウェビナーで使用している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개)

카테고리

도움말 센터File Exchange에서 Statistics and Machine Learning Toolbox에 대해 자세히 알아보기

제품

릴리스

R2016b

Community Treasure Hunt

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

Start Hunting!