Gibt es eine Möglichkeit, für jeden vorhergesagten Wert einen Konfidenzwert (wir können ihn auch als Konfidenzwert oder Wahrscheinlichkeit bezeichnen) zu erhalten, wenn Algorithmen wie Random Forests oder Extreme Gradient Boosting (XGBoost) verwendet werden? Angenommen, dieser Konfidenzwert reicht von 0 bis 1 und zeigt, wie sicher ich in Bezug auf eine bestimmte Vorhersage bin .
Nach dem, was ich im Internet über das Vertrauen gefunden habe, wird es normalerweise in Intervallen gemessen. Hier ist ein Beispiel für berechnete Konfidenzintervalle mit confpred
Funktion aus der lava
Bibliothek:
library(lava)
set.seed(123)
n <- 200
x <- seq(0,6,length.out=n)
delta <- 3
ss <- exp(-1+1.5*cos((x-delta)))
ee <- rnorm(n,sd=ss)
y <- (x-delta)+3*cos(x+4.5-delta)+ee
d <- data.frame(y=y,x=x)
newd <- data.frame(x=seq(0,6,length.out=50))
cc <- confpred(lm(y~poly(x,3),d),data=d,newdata=newd)
if (interactive()) { ##'
plot(y~x,pch=16,col=lava::Col("black"), ylim=c(-10,15),xlab="X",ylab="Y")
with(cc, lava::confband(newd$x, lwr, upr, fit, lwd=3, polygon=T,
col=Col("blue"), border=F))
}
Die Code-Ausgabe gibt nur Konfidenzintervalle an:
Es gibt auch eine Bibliothek conformal
, die jedoch auch für Konfidenzintervalle bei der Regression verwendet wird: "Konform ermöglicht die Berechnung von Vorhersagefehlern im Rahmen der konformen Vorhersage: (i) p.Werte für die Klassifizierung und (ii) Konfidenzintervalle für die Regression. ""
Gibt es also einen Weg:
Um Konfidenzwerte für jede Vorhersage bei Regressionsproblemen zu erhalten?
Wenn es keinen Weg gibt, wäre es sinnvoll, für jede Beobachtung Folgendes als Vertrauensbewertung zu verwenden:
der Abstand zwischen oberen und unteren Grenzen des Konfidenzintervalls (wie in der obigen Beispielausgabe). In diesem Fall ist die Unsicherheit umso größer, je breiter das Konfidenzintervall ist (dies berücksichtigt jedoch nicht, wo im Intervall der tatsächliche Wert liegt).
quelle
randomForestCI
Paket von Stephan Wager und das dazugehörige Papier mit Susan Athey an. Beachten Sie, dass nur CIs bereitgestellt werden. Sie können jedoch ein Vorhersageintervall daraus erstellen, indem Sie die Restvarianz berechnen.Antworten:
Was Sie als Konfidenzbewertung bezeichnen, kann aus der Unsicherheit einzelner Vorhersagen erhalten werden (z. B. durch Umkehrung).
Die Quantifizierung dieser Unsicherheit war beim Absacken immer möglich und in zufälligen Wäldern relativ einfach - diese Schätzungen waren jedoch voreingenommen. Wager et al. (2014) haben zwei Verfahren beschrieben, um diese Unsicherheiten effizienter und mit weniger Verzerrung zu bewältigen. Dies basierte auf vorspannungskorrigierten Versionen des Jackknife-after-Bootstrap und des infinitesimalen Jackknife. Implementierungen finden Sie in den R-Paketen
ranger
undgrf
.In jüngerer Zeit wurde dies durch die Verwendung zufälliger Wälder verbessert, die mit bedingten Inferenzbäumen erstellt wurden. Basierend auf Simulationsstudien (Brokamp et al. 2018) scheint der infinitesimale Jackknife-Schätzer den Fehler in Vorhersagen genauer abzuschätzen, wenn bedingte Inferenzbäume zum Erstellen der zufälligen Wälder verwendet werden. Dies ist im Paket implementiert
RFinfer
.Wager, S., Hastie, T. & Efron, B. (2014). Konfidenzintervalle für zufällige Wälder: Das Klappmesser und das infinitesimale Klappmesser. The Journal of Machine Learning Research, 15 (1), 1625-1651.
C. Brokamp, MB Rao, P. Ryan & R. Jandarov (2017). Ein Vergleich von Resampling- und rekursiven Partitionierungsmethoden in zufälligen Wäldern zur Schätzung der asymptotischen Varianz unter Verwendung des infinitesimalen Jackknife. Stat, 6 (1), 360 & ndash; 372.
quelle