4

MATLAB で実行する必要があるバイナリ分類の問題があります。2 つのクラスがあり、トレーニング データとテスト データの問題は 2 つのクラスからのもので、ガウス分布から得られた 2 次元座標です。

サンプルは 2D ポイントであり、次のようなものです (クラス A の場合は 1000 サンプル、クラス B の場合は 1000 サンプル): それらのいくつかをここに投稿しています:

5.867766 3.843014 5.019520 2.874257 1.787476 4.483156 4.494783 3.551501 1.212243 5.949315 2.216728 4.126151 2.864502 3.139245 1.532942 6.669650 6.569531 5.032038 2.552391 5.753817 2.610070 4.251235 1.943493 4.326230 1.617939 4.948345

新しいテスト データが入ってきた場合、テスト サンプルをどのように分類すればよいですか?

P(Class/TestPoint) は、P(TestPoint/Class) * (ProbabilityOfClass) に比例します。

指定された 2D 座標の P(Sample/Class) 変数をどのように計算するかはわかりません。今、私は式を使用しています

P(座標/クラス) = (座標 - そのクラスの平均) / そのクラスのポイントの標準偏差)。

ただし、これではあまり良いテスト結果が得られません。私は何か間違ったことをしていますか?

4

2 に答える 2

3

それは良い方法ですが、公式は正しくありません。ウィキペディアの多変量ガウス分布の記事を見てください。

P(テストポイント|クラス)= ここに画像の説明を入力,

ここに画像の説明を入力A の行列式です。

 Sigma = classPoint*classPoint';
 mu = mean(classPoint,2);
 proba = 1/((2*pi)^(2/2)*det(Sigma)^(1/2))*...
         exp(-1/2*(testPoint-mu)*inv(Sigma)*(testPoint-mu)');

あなたの場合、それらは両方のクラスで同じ数のポイントであるため、 P(class)=1/2

于 2011-11-26T22:10:29.700 に答える
0

式が正しく適用されていると仮定すると、データ ポイントからの特徴の導出が別の問題になる可能性があります。あなたの問題は、線形分類器には適していない可能性があります。

于 2011-11-26T22:36:54.797 に答える