2017-03-06 7 views
0

Ich habe einige Dummy-Daten, die aus 99 Zeilen von Daten besteht, ist eine Spalte freien Text Daten und eine Spalte ist die Kategorie. Es wurde entweder in Kundendienst oder Nicht-Kundendienst kategorisiert.KNN mit R - in Produktion

Ich übergab die 99 Datenzeilen in mein R-Skript, erstellte ein Corpus, bereinigte und analysierte meine Daten und konvertierte sie in eine DocumentTermMatrix. Ich habe dann meinen DTM in einen Datenrahmen umgewandelt, um die Ansicht zu erleichtern. Ich habe die Kategorie an meinen neuen Datenrahmen gebunden. Ich habe es dann 50/50 so 50 Zeilen in mein Trainingset geteilt, 49 in mein Testset. Ich zog auch die Kategorie heraus.

train <- sample(nrow(mat.df), ceiling(nrow(mat.df) * .5)) 
test <- (1:nrow(mat.df))[- train] 
cl <- mat.df[, "category"] 

Ich habe dann ein Modell mit der Kategorie Säule abgezogen und weitergegeben dieses neue Modell zu meinem KNN

knn.pred <- knn(modeldata[train, ], modeldata[test, ], cl[train]) 
conf.mat <- table("Predictions" = knn.pred, Actual = cl[test]) 
conf.mat 

dann kann ich die Genauigkeit ausrechnen, eine Kreuztabelle erzeugen oder die Vorhersagen exportieren Testen Sie die Genauigkeit des Modells.

Das Bit, um das ich mich im Moment kämpfe, ist, wie ich das Modell für neue Daten verwenden werde.

Also, wenn ich dann 10 neue Zeilen von Freitextdaten habe, die nicht manuell klassifiziert wurden, wie starte ich dann mein KNN-Modell, das ich gerade erstellt habe, um diese zusätzlichen Daten zu klassifizieren?

Vielleicht missverstehe ich nur den nächsten Prozess.

Danke,

Antwort

0

Auf die gleiche Weise Sie nur die Hold-out-Testleistung gefunden:

knn.pred.newdata <- knn(modeldata[train, ], completely_new_data, cl[train]) 

In einem KNN-Modell, Ihre Trainingsdaten ist Teil des Modells an sich. Da du nur die nächsten Trainingspunkte findest, woher weißt du dann, welche das sind, wenn du keine Koordinaten hast?

Das sagte, warum wollen Sie ein KNN-Modell anstelle von etwas moderner (SVM, Random Forest, Boosted Bäume, neuronale Netze) verwenden? KNN-Modelle skalieren extrem schlecht mit der Anzahl der Datenpunkte.

+0

Danke für die Antwort, ich bin mir sicher, dass ich es ausprobiert habe und es gab mir einen Fehler so dachte, dass ich falsch lag. Ich werde es noch einmal versuchen. In Bezug auf die Verwendung von KNN dafür. Der einzige wirkliche Grund ist, dass es am besten erschien, wenn man bei Google nachforschte. Ich bin völlig neu in der Textanalyse. – Richard