2017-07-16 4 views
0

J'ai exécuté svm en utilisant la fonction svm. Dans svm, je peux entrer des paramètres linéaires, radiaux et polynomiaux dans le paramètre kernel. Pour cette raison, je veux comprendre la distribution des données avant svm et déterminer lequel des trois arguments à utiliser. Comment puis-je entrer le code pour vérifier la distribution des données dans la variable cible?Comment tracer le résultat de svm et avant svm?

De même, comment représenter graphiquement les résultats de svm? Je l'ai fait tout le code dans stackoverflow, mais je reçois l'erreur suivante:

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

ou

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

Voici mon code complet. S'il vous plaît laissez-moi savoir sur mon problème.

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)) 

Répondre

0

Essayons

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) 

Hope it helps!

+0

Erreur dans plot.svm (german_svm, data = train): formule manquante. Ce message est apparu. –

+0

J'ai vérifié la documentation de '? Plot.svm'. Pour l'argument 'formula', il est indiqué" formule sélectionnant les deux dimensions visualisées, nécessaire uniquement si plus de deux variables d'entrée sont utilisées ", ce qui signifie que vous pouvez tracer svm model uniquement lorsque vous avez 3 caractéristiques (y compris la variable dépendante). Dans ce cas, vous avez beaucoup de variables, donc si vous voulez vraiment le tracer, vous devrez fournir deux fonctionnalités indépendantes explicitement dans votre formule. par exemple. 'plot (german_svm, data = train, Length.of.current.employment ~ Credit.Amount)' – Prem