2017-07-16 8 views
0

Ich lief Svm mit der svm Funktion. In SVM kann ich lineare, radiale und Polynom-Parameter im Kernel-Parameter eingeben.Wie das Ergebnis von SVM und vor Svm plotten?

Aus diesem Grund möchte ich herausfinden, die Verteilung der Daten vor SVM und bestimmen, welche der drei Argumente zu verwenden. Wie gebe ich den Code ein, um die Verteilung der Daten in der Zielvariablen zu überprüfen?

Auch, wie grafiere ich die Ergebnisse von SVM? Ich habe den gesamten Code in Stackoverflow getan, aber ich bekomme die folgende Fehlermeldung:

Error in Summary.factor(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, : 
    ‘min’ not meaningful for factors 

oder

Error in plot.svm(german_svm, data = train) : missing formula. 

Hier mein vollständiger Code ist. Bitte lassen Sie mich über mein Problem wissen.

credit<-read.csv("http://freakonometrics.free.fr/german_credit.csv", header=TRUE) 
credit$Creditability<-as.factor(credit$Creditability) 


str(credit) 


library(caret) 
set.seed(1000) 
intrain<-createDataPartition(y=credit$Creditability, p=0.7, list=FALSE) 
train<-credit[intrain, ] 
test<-credit[-intrain, ] 


library("e1071") 


result<-tune.svm(Creditability ~., data=train, gamma=2^(-5:0), cost=2^(0:4)) 


result$best.parameters 


library("e1071") 
german_svm<-svm(Creditability~.,data=train, gamma=0.03125, cost=1) 

#Plotting the graph. And I had an error in here. 
plot(german_svm, data=train) 
plot(german_svm, train, Creditability ~ ., 
+  slice = list(Sepal.Width = 3, Sepal.Length = 4)) 

Antwort

0

Lassen Sie uns versuchen, diese

features_list <- paste(names(credit)[!names(credit) %in% "Creditability"],collapse="+") 
f <- as.formula(paste0("Creditability~",features_list)) 
german_svm<-svm(f,data=train, gamma=0.03125, cost=1) 
plot(german_svm, data=train) 

Hoffe, es hilft!

+0

Fehler in plot.svm (german_svm, data = train): fehlende Formel. Diese Nachricht ist erschienen .. –

+0

Ich habe die Dokumentation von '? Plot.svm' überprüft. Für das Argument 'formula' heißt es" formula selecting die visualisierten zwei Dimensionen. Nur erforderlich, wenn mehr als zwei Eingabevariablen verwendet werden ", was bedeutet, dass Sie das svm-Modell nur dann grafisch darstellen können, wenn Sie maximal 3 Features haben (einschließlich abhängiger Variable). In diesem Fall haben Sie viele Variablen. Wenn Sie diese also wirklich grafisch darstellen möchten, müssen Sie zwei unabhängige Funktionen explizit in Ihrer Formel angeben. z.B. 'plot (german_svm, data = train, Länge.current.employment ~ Credit.Amount)' – Prem