0

KNN トレーニングについて質問があります。CM Bishop著のPattern Recognition and Machine Learningのような KNN を実装したいと考えています。条件付き密度 *p(x|C_k)=K_k\N_kV*、無条件密度p(x)=K\NV、およびクラスの事前確率 *p(C_k)=N_k\N* を見つける必要があります。次に、ベイズの定理に代入すると、事後確率が得られます。

私の問題はプログラミングにあります。5 つのクラスがあるとします。これらのクラスでは、特徴ベクトルの長さが異なります。クラス 1 は100、クラス 2 は344、クラス 3 は541... クラス 5 は を持っていnます。そして、それらすべてを合計すると、100 の完全な次元 (数の特徴ベクトル) と FV 1 の数のラベル ベクトルになります。

for loopここで私の質問:すべてのクラス (異なる長さ) が 1 つの行列に特徴ベクトルを次々に格納するため、事前確率を実装したい場合、すべてのクラスを反復処理することはできません。

%% Code fragment out of ML-KNN: A lazy learning approach to multilabel learning Min-Ling Zhang, Zhi-Hua Zhou
for i=nclass
   temp_Ci=sum(train_target(i,:)==ones(1,num_training));
   Prior(i,1)=(Smooth+temp_Ci)/(Smooth*2+num_training);
   PriorN(i,1)=1-Prior(i,1);
end 

では、Matlab で事前確率を実装するにはどうすればよいでしょうか?

4

0 に答える 0