Was ist das Problem in meiner Berechnung der multivariaten Kernel Estimation?

9

Meine Absicht ist es, seine Klasse durch Bayes Classifier Algorithm zu finden.

Angenommen, die folgenden training -Daten beschreiben Höhen, Gewichte und Fußlängen verschiedener Geschlechter

%Vor%

Nun möchte ich eine Person mit den folgenden Eigenschaften testen ( Testdaten ), um ihr / ihr Geschlecht zu finden,

%Vor%

Dies kann auch eine mehrzeilige Matrix sein.

Angenommen, ich kann nur den männlichen Teil der Daten isolieren und ihn in einer Matrix anordnen,

und ich möchte seine Parzen-Dichtefunktion gegen die folgende Zeilenmatrix finden repräsentiert dieselben Daten einer anderen Person (männlich / weiblich / Transgender),

( dataPoint kann mehrere Zeilen haben.)

, damit wir herausfinden können, wie genau diese Daten mit diesen Männchen übereinstimmen.

meine versuchte Lösung:

(1) Ich kann die secondPart nicht berechnen wegen der Dimensionsabweichung der Matrizen. Wie kann ich das beheben?

(2) Ist dieser Ansatz korrekt?

MATLAB-Code

%Vor%

parzen.m

%Vor%

bayes.m

%Vor%     
why 05.11.2016, 04:11
quelle

1 Antwort

4

Zuerst hat Ihre Beispielperson einen winzigen Fuß!

Second , es scheint so, als würden Sie Kerndichte-Schätzungen und naive Bayes zusammenmischen. In einer KDE schätzen Sie ein pdf eine Summe von Kernen, einen Kernel pro Datenpunkt in Ihrer Probe. Also, wenn Sie eine KDE von der Größe der Männchen machen wollten, würden Sie vier Gaussiane addieren, jede auf der Höhe eines anderen Männchens zentriert.

In naiven Bayes gehen Sie davon aus, dass die Features (Höhe, Fußgröße, etc.) unabhängig sind und dass jede normal verteilt ist. Sie schätzen die Parameter eines einzelnen Gaußschen Merkmals aus Ihren Trainingsdaten und verwenden dann ihr Produkt, um die gemeinsame Wahrscheinlichkeit eines neuen Beispiels zu erhalten, das zu einer bestimmten Klasse gehört. Die erste Seite, die Sie verlinken, erklärt das ziemlich gut.

Im Code:

%Vor%

Wenn wir die Wahrscheinlichkeit von Tiger gegen Mensch vergleichen, können wir daraus schließen, dass dataPoints(1,:) eine Person ist, während dataPoints(2,:) ein Tiger ist. Sie können dieses Modell komplizierter machen, indem z. B. vorhergehende Wahrscheinlichkeiten hinzugefügt werden, eine Klasse oder die andere zu sein, die dann probHuman oder probTiger multiplizieren würde.

    
Tokkot 09.11.2016, 16:57
quelle