Bagaimana nilai CP (Kompleksitas Biaya) dihitung dalam RPART (atau pohon keputusan secara umum)


9

Dari apa yang saya mengerti, argumen cp ke rpartfungsi membantu pra-pangkas pohon dengan cara yang sama dengan argumen menitplit atau minbucket. Yang tidak saya mengerti adalah bagaimana nilai CP dihitung. Sebagai contoh

df<-data.frame(x=c(1,2,3,3,3,4), y=as.factor(c(TRUE, TRUE, FALSE, TRUE, FALSE, FALSE)), method="class")
mytree<-rpart(y ~ x, data = df, minbucket = 1, minsplit=1)

Pohon yang dihasilkan ...

mytree
n= 6 

node), split, n, loss, yval, (yprob)
      * denotes terminal node

1) root 6 3 FALSE (0.5000000 0.5000000)  
  2) x>=2.5 4 1 FALSE (0.7500000 0.2500000) *
  3) x< 2.5 2 0 TRUE (0.0000000 1.0000000) *

Ringkasan...

summary(mytree)

Call:
rpart(formula = y ~ x, data = df, minbucket = 1, minsplit = 1)
  n= 6 

         CP nsplit rel error    xerror      xstd
1 0.6666667      0 1.0000000 2.0000000 0.0000000
2 0.0100000      1 0.3333333 0.6666667 0.3849002

Dari mana .666 dan .01 berasal?


Silakan periksa jawaban saya di posting ini
Haitao Du

Itu adalah penurunan rel error ke level pohon berikutnya. Mungkin ada penjelasan lain, tapi menurut saya, saya lebih suka yang sederhana
cloudcomputes

Jawaban:



2

Parameter kompleksitas (cp) di rpart adalah peningkatan minimum dalam model yang diperlukan di setiap node. Ini didasarkan pada kompleksitas biaya dari model yang didefinisikan sebagai masukkan deskripsi gambar di sini

Untuk pohon yang diberikan, tambahkan kesalahan klasifikasi pada setiap simpul terminal. Kemudian gandakan jumlah waktu perpecahan dengan istilah penalti (lambda) dan tambahkan ke total kesalahan klasifikasi. Lambda ditentukan melalui validasi silang dan tidak dilaporkan dalam R.

Untuk model regresi (lihat bagian berikutnya) skala cp memiliki interpretasi yang sangat langsung: jika ada perpecahan tidak meningkatkan R2 keseluruhan model dengan setidaknya cp (di mana R2 adalah definisi model linier yang biasa) maka perpecahan tersebut ditetapkan menjadi menjadi, apriori, tidak layak dikejar. Lihat dokumen longintro untuk rpart


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.