2016-04-14 8 views
0

Kürzlich las ich ein Papier über K-Means und Naive Bayes Lernansatz. Aber ich bin verwirrt darüber, wie diese beiden Methoden miteinander kombiniert werden.Wie kombiniere ich K-Means-Clustering mit Naive Bayes

Beispiel: X (x1, x2, x3, ..., xn) bezeichnet einen Datensatz.Label bezeichnet die Klasse, zu der der Datensatz Xi gehört. Es gibt zwei Klassen, die als K1 und K2 bezeichnet werden. Also, wir haben immer Xi (i∈ [1, n]) gehört zu {K1, K2}

Wie allen bekannt ist, kann K-Means-Methode Datensatz X.Suppose K = 2.Dann wir Cluster haben Clx (Clx (i) ∈ {1,2}, i∈ [1, n]) das Clusterergebnis.

Naive Bayes kann die Wahrscheinlichkeit berechnen. wenn P (K1 | X)> P (K2 | X)} ​​dann kann Abtastwert X in Klasse K1 klassifiziert werden. Ansonsten kann X in Klasse K2 klassifiziert werden.

Wir können die Wahrscheinlichkeit mit dem Satz von Bayes berechnen.

P (K1 | X) = P (X | K1) P (K1)/P (X) = P (x1 | K1) P (x2 | K1) ... P (xn | K1)/P (X)

Aber wie kann ich K-Means mit Naive Bayes kombinieren?

Also ich denke, ich kann XX verwenden (X, Clx). Und dann verwenden Sie XX, um Naive Bayes Classifier wie NB = NaiveBayes.fit (XX, Label, 'Distribution', 'normal') zu trainieren.

Dann teste ich den Klassifikator, den ich vorher trainiert habe, das Ergebnis ist so deprimierend.

Bin ich falsch?

Ist dies der Weg, diese beiden Methoden zu kombinieren?

+0

Warum möchten Sie K-Means mit Naive Bayes kombinieren? Auch, auf welche Naive Bayes beziehen Sie sich (Multinomial, Bernoulli, Gaussian)? –

+0

Ich denke, "normal" in Matlab bezieht sich auf Gauß. Ich las ein Papier, das K-Mittel mit Naive Bayes kombiniert, und das Papier erreichte eine hohe Erkennungsrate. Ich möchte diese Kombination implementieren. Aber ich frage mich die Theorie der Kombination. – yskyj

Antwort

1

Nach einigem schnellen googeln bin ich bei this Papier von Muda et al angekommen. welches eine K-Means-NB-Kombination für die Aufgabe der Intrusion Detection beschreibt.

Das Modell besteht aus mehreren NB-Klassifikatoren, die jeweils auf eine Teilmenge von Daten trainiert wurden, die einem bestimmten K-Means-Cluster entsprechen. Die Autoren geben keine theoretischen Begründungen für die vorgeschlagene Kombination und ich denke, der Grund ist einfach: Es gibt keine [*]. K-Means Preprocessing wird als Ad-hoc-Methode zum Trainieren mehrerer verschiedener NB-Klassifikatoren verwendet. Das gleiche Ergebnis könnte erzielt werden durch Verwendung eines geeigneten ensembling method, z.B. Absacken, Boosten oder Stapeln.

[*] Sie können die Kombination als hierarchisches probabilistisches Modell anzeigen. Die Annahmen eines solchen Modells wären jedoch inkonsistent. Auf dem Cluster konditioniert, wird angenommen, dass X eine Stichprobe aus einer multivariaten Gaußschen (K-Mittel-Annahme) und gleichzeitig aus einer Mischung von multivariaten Gaussianen (Gaußsche NB-Annahme) ist. Natürlich können beide nicht gleichzeitig halten.

Verwandte Themen