Bagaimana cara menghitung skor kepercayaan dalam regresi (dengan hutan acak / XGBoost) untuk setiap prediksi dalam R?

11

Apakah ada cara untuk mendapatkan skor kepercayaan (kita dapat menyebutnya juga nilai kepercayaan atau kemungkinan) untuk setiap nilai yang diprediksi saat menggunakan algoritma seperti Random Forests atau Extreme Gradient Boosting (XGBoost)? Katakanlah skor kepercayaan ini akan berkisar dari 0 hingga 1 dan menunjukkan seberapa yakin saya tentang prediksi tertentu .

Dari apa yang saya temukan di internet tentang kepercayaan, biasanya diukur dengan interval. Berikut adalah contoh interval kepercayaan yang dihitung dengan confpredfungsi dari lavaperpustakaan:

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))
}

Output kode hanya memberikan interval kepercayaan:

grafik yang menunjukkan titik, prediksi, dan interval kepercayaan

Ada juga perpustakaan conformal, tetapi saya juga digunakan untuk interval kepercayaan dalam regresi: "konformal memungkinkan perhitungan kesalahan prediksi dalam kerangka prediksi konformal: (i) p.nilai untuk klasifikasi, dan (ii) interval kepercayaan untuk regresi. "

Jadi adakah caranya:

  1. Untuk mendapatkan nilai kepercayaan untuk setiap prediksi dalam setiap masalah regresi?

  2. Jika tidak ada cara, apakah akan berarti untuk digunakan untuk setiap pengamatan sebagai skor kepercayaan ini:

    jarak antara batas atas dan bawah dari interval kepercayaan (seperti pada contoh output di atas). Jadi, dalam hal ini, semakin lebar interval kepercayaan, semakin banyak ketidakpastian (tetapi ini tidak memperhitungkan di mana dalam interval adalah nilai aktual)

Marius
sumber
1
Lihat di randomForestCIpaket oleh Stephan Wager, dan makalah terkait dengan Susan Athey. Catatan itu hanya memberikan CIs tetapi Anda dapat membuat interval prediksi darinya dengan menghitung varians residual.
generic_user

Jawaban:

4

Apa yang Anda sebut sebagai skor kepercayaan dapat diperoleh dari ketidakpastian dalam prediksi individu (misalnya dengan mengambil kebalikannya).

Mengukur ketidakpastian ini selalu dimungkinkan dengan mengantongi dan relatif mudah di hutan acak - tetapi perkiraan ini bias. Taruhan et al. (2014) menggambarkan dua prosedur untuk mendapatkan ketidakpastian ini dengan lebih efisien dan dengan bias yang lebih sedikit. Ini didasarkan pada versi yang dapat dikoreksi dari jackknife-setelah-bootstrap dan jackknife yang sangat kecil. Anda dapat menemukan implementasi dalam paket R rangerdan grf.

Baru-baru ini, ini telah diperbaiki dengan menggunakan hutan acak yang dibangun dengan pohon inferensi bersyarat. Berdasarkan studi simulasi (Brokamp et al. 2018), estimator jackknife yang sangat kecil nampaknya lebih akurat memperkirakan kesalahan dalam prediksi ketika pohon inferensi bersyarat digunakan untuk membangun hutan acak. Ini diimplementasikan dalam paket RFinfer.


Taruhan, S., Hastie, T., & Efron, B. (2014). Interval kepercayaan untuk hutan acak: Jackknife dan jackknife yang sangat kecil. Jurnal Penelitian Pembelajaran Mesin, 15 (1), 1625-1651.

Brokamp, ​​C., Rao, MB, Ryan, P., & Jandarov, R. (2017). Perbandingan metode partisi resampling dan rekursif di hutan acak untuk memperkirakan varians asimptotik menggunakan jackknife yang sangat kecil. Stat, 6 (1), 360-372.

mkt - Pasang kembali Monica
sumber