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

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

 Akzeptierte Antwort

MathWorks Support Team
MathWorks Support Team am 11 Nov. 2016

1 Stimme

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

Weitere Antworten (0)

Kategorien

Mehr zu Statistics and Machine Learning Toolbox finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2016b

Community Treasure Hunt

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

Start Hunting!