2016-05-19 15 views
0

So habe ich Datensatz mit Objekten von 4 Klassen. Ich benutze den Naive Bayes Klassifikator, um neue Objekte zu klassifizieren. Ist es möglich festzustellen, ob ein neues Objekt wirklich keiner Klasse angehören sollte (= irgendwie neue Klasse "Nicht klassifiziert" einfügen)?Naive Bayes in R: Wie klassifiziere Objekt in neue "Nicht klassifiziert" Klasse

convert_counts <- function(x) { 
x <- ifelse(x > 0, 1, 0) 
x <- factor(x, levels = c(0, 1), labels = c("No", "Yes")) 
return(x) 
} 
sntcs_train1 <- apply(sntcs_train1, MARGIN = 2, convert_counts) 
sntcs_test1 <- apply(sntcs_test1, MARGIN = 2, convert_counts) 
library(e1071) 
sntcs_classifier <- naiveBayes(sntcs_train1, sntcs_train$Author) 
sntcs_test_pred <- predict(sntcs_classifier, sntcs_test1) 
+0

Der direkte Ansatz wäre, einige Beispiele von Daten zu erhalten, die "Nicht klassifiziert" sein sollten, und sie an "naiveBayes" zu füttern (so dass Sie 5 statt 4 Klassen haben). Sie können sich auch einen Weg vorstellen, die Wahrscheinlichkeiten durch den Algorithmus mit 4 Klassen zu erhalten und ein Kriterium irgendwie zu erstellen ==> das wäre aber wirklich beliebig. Prost. – lrnzcig

Antwort

0

Technisch ist es möglich. Was Sie verwenden, ist ein Multinomial-Naive-Bayes-Klassifikator. Die Mathematik kann wie folgt ausgedrückt werden:

      P(B|A)*P(A) 
    P(A|B) =   ____________________ 

      P(B|A)*P(A) + P(B|C)*P(C) +...+P(B|n)*P(n) 

wo A n die verschiedenen Klassen, die Sie klassifizieren wollen und P (B | A) ist die Wahrscheinlichkeit von B gegeben Auftretende dass A aufgetreten ist, und P (A hat) ist die Wahrscheinlichkeit, dass A auftritt.

Wenn Sie etwas 5. „nicht klassifiziert“ Klassifizierung hinzufügen möchten, müssen Sie die folgenden zwei Werte ausrechnen:

P(B| unclassified)*P(unclassified) 

A die Wahrscheinlichkeit, nicht klassifiziert des Seins einfach

1-P(A)-P(B)-P(C)-P(D) 

sein für jede Ihrer 4 aktuellen Klassen. Sie müssen jedoch immer noch die erforderliche Analyse durchführen, um herauszufinden, was Ihr Ausdruck sein sollte.