In der gesamten Literatur zur Modellierung der Artenverteilung wird vorgeschlagen, dass bei der Vorhersage des Vorhandenseins / Nichtvorhandenseins einer Art unter Verwendung eines Modells, das Wahrscheinlichkeiten (z. B. RandomForests) ausgibt, die Wahl der Schwellenwahrscheinlichkeit, nach der eine Art tatsächlich als Vorhandensein oder Nichtvorhandensein klassifiziert werden soll, wichtig ist und sollte Verlassen Sie sich nicht immer auf den Standardwert von 0,5. Ich brauche Hilfe dabei! Hier ist mein Code:
library(randomForest)
library(PresenceAbsence)
#build model
RFfit <- randomForest(Y ~ x1 + x2 + x3 + x4 + x5, data=mydata, mytry = 2, ntrees=500)
#eventually I will apply this to (predict for) new data but for first I predict back to training data to compare observed vs. predicted
RFpred <- predict(RFfit, mydata, type = "prob")
#put the observed vs. predicted in the same dataframe
ObsPred <- data.frame(cbind(mydata), Predicted=RFpred)
#create auc.roc plot
auc.roc.plot(ObsPred, threshold = 10, xlab="1-Specificity (false positives)",
ylab="Sensitivity (true positives)", main="ROC plot", color=TRUE,
find.auc=TRUE, opt.thresholds=TRUE, opt.methods=9)
Daraus ermittelte ich, dass der Schwellenwert, den ich zur Klassifizierung der Anwesenheit anhand der vorhergesagten Wahrscheinlichkeiten verwenden möchte, 0,7 beträgt, nicht der Standardwert von 0,5. Ich verstehe nicht ganz, was ich mit diesen Informationen anfangen soll. Benutze ich diesen Schwellenwert einfach, wenn ich eine Karte meiner Ausgabe erstelle? Ich könnte leicht eine zugeordnete Ausgabe mit kontinuierlichen Wahrscheinlichkeiten erstellen und dann einfach diejenigen mit Werten größer als 0,7 als vorhanden und diejenigen <0,7 als nicht vorhanden neu klassifizieren.
Oder möchte ich diese Informationen verwenden und meine randomForests-Modellierung mithilfe des Cut-Off-Parameters erneut ausführen? Was genau macht der Cut-Off-Parameter? Ändert es die resultierende Abstimmung? (sagt derzeit, es ist "Mehrheit"). Wie verwende ich diesen Grenzparameter? Ich verstehe die Dokumentation nicht! Vielen Dank!
Antworten:
# Setzen Sie den Schwellenwert oder den Grenzwert auf 0,7
# Alle Werte, die unter dem Grenzwert 0,7 liegen, werden als 0 klassifiziert (in diesem Fall vorhanden).
# Alle Werte größer als der Grenzwert 0,7 werden als 1 klassifiziert (in diesem Fall nicht vorhanden).
quelle
Tut mir leid, dass du keine Antworten bekommen hast. Ich würde Max Kuhns Buch zur Berichterstattung über dieses Problem empfehlen. Dies ist ein ziemlich weites Thema. Fügen Sie einfach einige Bits hinzu:
Update zu Klassengewichten Andy Liaw:
"Die aktuelle Option" classwt "im randomForest-Paket war von Anfang an vorhanden und unterscheidet sich von der Implementierung von Klassengewichten durch den offiziellen Fortran-Code (Version 4 und höher). Sie berücksichtigt lediglich die Klasse Gewichte in der Gini-Indexberechnung beim Aufteilen von Knoten, genau wie ein einzelner CART-Baum bei gegebenen Klassengewichten erstellt wird. Prof. Breiman hat das neuere Klassengewichtungsschema entwickelt, das in der neueren Version seines Fortran-Codes implementiert ist, nachdem wir festgestellt haben, dass es einfach verwendet wird Die Gewichte im Gini-Index schienen bei extrem unausgeglichenen Daten (z. B. 1: 100 oder schlechter) nicht viel zu helfen. Wenn die Verwendung von gewichtetem Gini in Ihrer Situation hilft, tun Sie dies auf jeden Fall. Ich kann das nur in der Vergangenheit sagen hat uns nicht das erwartete Ergebnis gebracht. "
quelle