Apa arti kedalaman interaksi dalam GBM?

30

Saya punya pertanyaan tentang parameter kedalaman interaksi dalam gbm di R. Ini mungkin pertanyaan noob, yang saya minta maaf, tetapi bagaimana parameternya, yang saya yakini menunjukkan jumlah terminal terminal dalam sebuah pohon, pada dasarnya menunjukkan X-way interaksi di antara para prediktor? Hanya mencoba memahami cara kerjanya. Selain itu, saya mendapatkan model yang sangat berbeda jika saya memiliki dataset dengan mengatakan dua variabel faktor yang berbeda versus dataset yang sama kecuali kedua variabel faktor tersebut digabungkan menjadi satu faktor (misalnya level X pada faktor 1, level Y pada faktor 2, variabel gabungan memiliki Faktor X * Y). Yang terakhir secara signifikan lebih prediktif daripada yang pertama. Saya pikir peningkatan kedalaman interaksi akan meningkatkan hubungan ini.

tomas
sumber

Jawaban:

22

Kedua jawaban sebelumnya salah. Paket GBM menggunakan interaction.depthparameter karena jumlah pemisahan harus dilakukan pada pohon (mulai dari satu node). Karena setiap split meningkatkan jumlah total node sebanyak 3 dan jumlah node terminal sebanyak 2 (node {node kiri, node kanan, node NA}) jumlah total node dalam pohon adalah dan jumlah node terminal . Ini dapat diverifikasi dengan melihat keluaran fungsi.3N+12N+1pretty.gbm.tree

Perilaku ini agak menyesatkan, karena pengguna memang mengharapkan kedalaman menjadi kedalaman pohon yang dihasilkan. Bukan itu.

acak
sumber
Apa itu N di sini: Jumlah node, interaksi.depth atau yang lainnya?
Julian
Ini adalah sejumlah pemisahan yang dilakukan, mulai dari satu simpul (juga, kedalaman interaksi).
acak
1
Saya pikir setiap split hanya menambah jumlah node terminal dengan 1. jadi misalkan sebuah pohon hanya memiliki satu split, maka ia memiliki 2 terminal node, sekarang Anda melakukan split pada salah satu node terminal sebelumnya, dan kemudian ada 3 terminal node sekarang. jadi kenaikannya hanya 1. Apakah saya mendapatkan ini dengan benar atau saya salah mengerti sesuatu?
Lily Long
1
@LilyLong Mungkin tidak segera jelas, tetapi gbm sebenarnya membagi node menjadi tiga, anak ketiga mengelompokkan nilai-nilai NA (yaitu yang tidak dapat langsung dibandingkan dengan nilai yang diberikan). Itu berarti bahwa setiap split meningkatkan jumlah node dua. Paket ini mungkin telah berevolusi sejak saya menggunakannya terakhir kali untuk menghindari membuat anak ketiga ini, jadi silakan periksa kembali dengan menjalankan fungsi pretty.gbm.tree.
acak
2

Saya punya pertanyaan tentang parameter kedalaman interaksi dalam gbm di R. Ini mungkin pertanyaan noob, yang saya minta maaf, tetapi bagaimana parameternya, yang saya yakini menunjukkan jumlah terminal terminal dalam sebuah pohon, pada dasarnya menunjukkan X-way interaksi di antara para prediktor?

Tautan antara interaksi.depth dan jumlah node terminal

Satu untuk melihat interaction.depthsebagai jumlah node split. Suatu interaction.depthperbaikan pada k akan menghasilkan simpul-simpul dengan simpul terminal k + 1 (menghilangkan simpul-simpul NA), jadi kita memiliki:

sayanterSebuahctsayaHain.dehalth=#{TermsayanSebuahlNHaides}+1

Tautan antara interaksi.depth dan urutan interaksi

Hubungan antara interaction.depthdan tatanan interaksi lebih membosankan.

Alih-alih penalaran dengan interaction.depth, mari alasan dengan jumlah node terminal, yang kita akan disebut J .

Contoh: Misalkan Anda memiliki J = 4 node terminal (interaksi.depth = 3) Anda dapat:

  1. lakukan split pertama pada root, lalu split kedua pada simpul kiri root dan split ketiga pada simpul kanan root. Urutan interaksi untuk pohon ini adalah 2.
  2. lakukan split pertama pada root, lalu split kedua pada simpul kiri (berturut-turut kanan) dari root, dan split ketiga pada node paling kiri (berturut-turut kanan) ini. Urutan interaksi untuk pohon ini adalah 3.

Jadi, Anda tidak bisa tahu sebelumnya apa yang akan menjadi urutan interaksi antara fitur Anda di pohon tertentu. Namun dimungkinkan untuk nilai batas atas ini. Biarkan P menjadi urutan interaksi fitur dalam pohon yang diberikan. Kami memiliki: dengan n menjadi jumlah pengamatan. Untuk lebih jelasnya lihat bagian 7 dari artikel asli Friedman .

Pmsayan(J-1,n)
Etienne Kintzler
sumber
1

Jawaban sebelumnya tidak benar.

Tunggul akan memiliki interaksi. Tingkat 1 (dan memiliki dua daun). Tapi interaksi.depth = 2 memberi tiga daun.

Jadi: NumberOfLeaves = interaksi.depth + 1

alexeigor
sumber
0

Sebenarnya, jawaban sebelumnya salah.

N=2(K+1)-1L.=2K

2k

N=k=0K2k)

yang setara dengan:

N=2(K+1)-1
Marion Azoulai
sumber
0

Anda dapat mencoba

tabel (prediksi (gbm (y ~., data = TrainingData, distribusi = "gaussian", verbose = FALSE, n.trees = 1, penyusutan = 0,01, bag.fraction = 1, interaksi.depth = 1), n.trees = 1))

dan lihat bahwa hanya ada 2 nilai prediksi unik. interaksi.depth = 2 akan memberi Anda 3 nilai prediksi yang berbeda. Dan yakinkan dirimu.

StatPhD
sumber
Tidak jelas bagaimana ini menjawab pertanyaan.
Michael R. Chernick