2016-04-12 15 views
0

Ich möchte ein Spielzeug 2D-Datensatz erstellen, auf dem die Leistung des SVM-Algorithmus zu visualisieren. Ich produzierte einen Datensatz, die perfekt trennbar ist:Caret SVM seltsam verhalten

n <- 200; 

d<-data.frame(x=runif(n), y=runif(n)) 

d$class[-1 + 3 * d$x < d$y] <- "1" 
d$class[-1 + 3 * d$x > d$y] <- "2" 

Allerdings verstehe ich nicht die Warnungen erhalte ich, wenn ich die Linie laufen:

library(caret) 

train(class~., data=d, method='svmLinear', tuneGrid=data.frame(C=1)) 

Verfahren eine Menge Warnungen zurück, die alle der Typ:

23: In data.row.names(row.names, rowsi, i) : 
    some row.names duplicated: 3,4,10,12,14,16,18,22,24,27,30,34,35,38,39,45,47,52,54,56,57,64,67,72,74,76,78,81,83,84,87,88,91,92,94,99,103,108,109,111,113,115,117,118,120,121,123,128,129,131,135,137,138,140,141,143,145,146,148,153,164,171,173,178,181,187,189,191,193,194,198 --> row.names NOT used 

Außerdem

Kann jemand was in der Welt erklären, ist Happe ning?

Antwort

1

Es ist nichts falsch mit Ihrem Modell und funktioniert gut. Sie können die Warnung ignorieren.

Diese Ausgabe wurde unter issue 410 auf der GitHub-Seite von Caret abgelegt. Dies ist jetzt gelöst und wird behoben, wenn eine neue Version auf Cran (Version höher als 6.0-70) verfügbar ist. Oder Sie können eine neue Version von github herunterladen.

1

Nun, ich bin mir nicht sicher, was die Warnungen verursacht. Aber wenn ich anderen Ansatz verwendet, um Modell mit Zugfunktion wie folgt zu passen:

train(x=d[, c("x", "y")], y=factor(d$class), method='svmLinear', tuneGrid=data.frame(C=1) 

Ich habe keine Warnungen erhalten. Die Leistung beider Methoden ist sehr ähnlich.