マハラノビス距離を計算することで入力データのクラスを分類するプログラムをRで実装してみた。 多クラスでしかも非線形に分類できました。 方法は超単純。 クラスの重心を求めて、入力データと重心のマハラノビス距離を求めればいいだけ。 距離が最も短いクラスに分類する。 多クラスへの拡張が超簡単。しかも非線形!!! (パーセプトロンの学習規則やらWidorow-Hoffの学習規則だと線形な分離面しか描けなかった。) クラスcの重心を、共分散行列をとすると、 入力データxとクラスcのマハラノビス距離は次の式から求められる。 Rでの実装 #マハラノビス距離で入力データを分類する # x:入力データ, data:学習データ, t:学習データのクラスベクトル my.mahalanobis <- function(x,data,t){ tmax <- max(t) tmin <- min(t) if( tmi