Ich benutze Caret, um mein Modell (binäre Klassifizierungsaufgabe) zu trainieren. Wie kann ich sicherstellen, dass train() nicht auf der Genauigkeitsmetrik, sondern auf der Spezifitätsmetrik (TN/(TN + FP)) trainiert?Zug auf Spezifität
, was funktioniert auf Genauigkeit:
metric = "Specificity"
Wer weiß, wie das Modell zu trainieren, um die Spezifität zu optimieren:
control <- trainControl(method="cv", number=10)
metric <- "Accuracy"
set.seed(7)
fit.svm <- train(target_var ~., data=dataset, method="svmRadial", metric=metric, trControl=control)
Es ist nicht zu ändern funktioniert?
KR, Arnand
danken, wenn ich Ihre Funktion erhalte ich: ‚Fehler in '[.data.frame' (data,, lvls [1]): undefinierte Spalten ausgewählt ' Wenn ich' trControl 'durch' trainControl 'ersetze funktioniert es, aber ich bekomme das Warnmaß: Warnmeldung: In train.default (x, y, Gewichte = w, ...): Die Metrik "Spec" war nicht in der Ergebnismenge. Genauigkeit wird stattdessen verwendet. – Arnand
siehe edit, wahrscheinlich brauchen Sie 'classProbs = TRUE' in' trainControl() ', und das Dataset muss ein data.frame sein. – mtoto
Es funktioniert mit der Klasse Probs = TRUE, danke! – Arnand