Ist es möglich, die Kosten einer Fehlklassifizierung im R-Paket randomForest zu kontrollieren ?
In meiner eigenen Arbeit sind falsch negative Ergebnisse (z. B. das Fehlen einer Krankheit) weitaus kostspieliger als falsch positive Ergebnisse. Das Paket rpart ermöglicht es dem Benutzer, Fehlklassifizierungskosten zu kontrollieren, indem eine Verlustmatrix angegeben wird, um Fehlklassifizierungen unterschiedlich zu gewichten. Gibt es etwas ähnliches für randomForest
? Soll ich zum Beispiel die classwt
Option verwenden, um das Gini-Kriterium zu steuern?
quelle
classwt
: Ja, ich habe festgestellt, dass die Ergebnisse in der Praxis und im Einklang mit anderen Benutzern nicht den Erwartungen entsprechen. (iii)cutoff
: Mir ist nicht klar, wiecutoff
ich in diesem Fall vorgehen soll, und ich würde jeden weiteren Rat begrüßen.Es gibt verschiedene Möglichkeiten, die Kosten einzubeziehen.
(1) Über- / Unterprobenahme für jeden Sackbaum (geschichtete Probenahme) ist die gebräuchlichste Methode zur Einführung von Kosten. Sie haben das Dataset absichtlich aus dem Gleichgewicht gebracht.
(2) Gewichtung. Funktioniert nie Ich denke, das wird in der Dokumentation betont. Einige behaupten, Sie müssten nur in allen Phasen wie der Gini-Aufteilung und der Schlussabstimmung gewichten. Wenn es funktionieren wird, wird es eine schwierige Implementierung sein.
(3) Metacost-Funktion in Weka.
(4) Behandeln einer zufälligen Gesamtstruktur als probabilistischer Klassifikator und Ändern des Schwellenwerts. Ich mag diese Option am wenigsten. Wahrscheinlich aufgrund meines Unwissens, aber obwohl der Algorithmus Wahrscheinlichkeiten ausgeben kann, ist es für mich nicht sinnvoll, sie so zu behandeln, als ob dies ein probabilistisches Modell wäre.
Ich bin mir aber sicher, dass es weitere Ansätze gibt.
quelle
Es wird empfohlen, dass Sie den Parameter so anpassen , dass er den Realwert in der Zusammenfassung darstellt , wenn die Variable, die Sie vorhersagen möchten, nicht 50% für
class 1
und 50% fürclass 2
(wie in den meisten Fällen) ist .cutoff
OOB
Beispielsweise,
In diesem Fall Wahrscheinlichkeit , einen Wert eines mit
class 1
ist ,.96
während mit einem Wert vonclass 2
ist.04
.Ansonsten verwenden zufällige Wälder eine Schwelle von
0.5
.quelle
Man kann sich integrieren
costMatrix
inrandomForest
explizit überparms
Parameter:quelle
Sie können die Kostensensitivität über die
sampsize
imrandomForest
Paket enthaltene Funktion einbinden.Variieren Sie die Zahlen
(100,20)
basierend auf Ihren Daten und den Annahmen / Geschäftsregeln, mit denen Sie arbeiten.Um eine Verwirrungsmatrix zu erhalten, die die Kosten von Klassifizierungsfehlern widerspiegelt, ist ein gewisser Versuch erforderlich. Sehen Sie sich Richard Berks an kriminelle Risikoprognosen: Ein Ansatz für maschinelles Lernen . 82.
quelle