Tuning SVM-Parameter mittels svm.tune e1071 Paket
Ich bin Versuch, eine Klassifikation mit Support-Vektor-Maschinen in R mit e1071 Paket. Mit dem folgenden code, und die Angabe der Kosten-und gamma-Parametern, ich könnte trainieren der Modelle erfolgreich.
svm_models <- lapply(training_data,
function(data)
{
svm(label~., data=data,
method="C-classification", kernel="radial",
cost=10, gamma=0.1)
})
Aber Wenn ich ausführen, Parameter tuning innerhalb der oben genannten Funktion wie im folgenden code,
svmmodels <- lapply(trainingdata,
function(data)
{
params <- tune.svm(label~., data=data,
gamma=10^(-6:-2), cost=10^(1:2))
svm(label~., data=data,
method="C-classification", kernel="radial",
cost=params$best.parameter[[2]], gamma=params$best.parameter[[1]])
})
dann bekomme ich die folgende Fehlermeldung:
Error in predict.svm(ret, xhold, decision.values = TRUE) (from #4) :
Model is empty!
Was könnte die mögliche Ursache für dieses Problem?
Dank.
InformationsquelleAutor Shahzad | 2013-01-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Laut
?tune
sollte esbest.parameters
, nichtbest.parameter
. Versuchen Sie, das 's' am Ende von beiden Instanzen in Ihrem code, und sehen, ob es funktioniert.InformationsquelleAutor dnlbrky
Sehr schwer zu sagen, viel definitive keine Daten zum testen (oder auch eine Beschreibung der Daten). Es ist jedoch möglich, zu sagen, dass Ihre Berufung
svm
nachtune.svm
ist nicht im Einklang mit dem Beispiel in dere1071::tune
Hilfe-Seite. Außerdem werden die formalen parameter, der die "Kosten" und "Preis" Parmeter werden sollte, angegeben als Liste von Elementen, ist "range". Sie sollten nicht brauchen, um ausführen svm auf den Ausgang.InformationsquelleAutor 42-