Dapatkah regresi berbasis pohon berkinerja lebih buruk daripada regresi linier biasa?

9

Hai, saya sedang mempelajari teknik regresi.

Data saya memiliki 15 fitur dan 60 juta contoh (tugas regresi).

Ketika saya mencoba banyak teknik regresi yang dikenal (gradient boosted tree, Decision tree regression, AdaBoostRegressor dll) regresi linier dilakukan dengan sangat baik.

Skor hampir terbaik di antara algoritma tersebut.

Apa yang bisa menjadi alasan untuk ini? Karena data saya memiliki begitu banyak contoh sehingga metode berbasis DT dapat cocok.

  • Reguler linear regresi ridge, laso berperforma lebih buruk

Adakah yang bisa memberi tahu saya tentang algoritma regresi berkinerja baik lainnya?

  • Apakah Mesin Faktorisasi dan Dukungan regresi vektor adalah teknik regresi yang baik untuk dicoba?
penderitaan
sumber
2
Ini lebih terkait dengan data Anda daripada algoritma. Struktur regresi linier hanya cocok untuk data Anda.
Matthew Drury
terima kasih telah menjawab @MatthewDrury. dengan mengamati karakteristik ini, saya mencoba menemukan karakteristik data saya. Ini jelas memiliki fitur kecil dan banyak contoh. dan bekerja paling baik pada regresi jaringan saraf biasa. dan pada kenyataannya model non-parametrik seperti meningkatkan gradien bekerja sedikit lebih buruk daripada regresi parametrik (dengan asumsi bentuk fungsi), dapatkah saya mengatakan data saya tidak dapat memberikan banyak wawasan untuk data yang tidak diketahui terlepas dari berapa banyak contoh yang saya miliki? Saya mengalami masalah dengan pengurangan karakteristik data saya dari hasil.
amityaffliction
Bekerja pertama dengan beberapa regresi linear dan kemudian, pelajari plot residual dan semacamnya untuk benar-benar memahami kecocokan. Kemudian Anda bisa melihat dalam hal apa kecocokan itu buruk. Jangan hanya membuang data pada algoritma yang berbeda, bekerja keras untuk memahami kecocokannya.
kjetil b halvorsen
@kjetilbhalvorsen terima kasih atas balasan. Saya memiliki 15 variabel independen. jadi Bagaimana saya bisa merencanakan atau mendapatkan wawasan dari fit residual. Bisakah kamu membantuku?
amityaffliction

Jawaban:

11

Anda tidak boleh hanya membuang data pada algoritma yang berbeda dan melihat kualitas prediksi. Anda perlu memahami data Anda dengan lebih baik, dan cara melakukannya adalah dengan terlebih dahulu memvisualisasikan data Anda (distribusi marjinal). Bahkan jika Anda hanya tertarik pada prediksi, Anda akan berada dalam posisi yang lebih baik untuk membuat model yang lebih baik jika Anda memahami data dengan lebih baik. Jadi, pertama-tama, cobalah untuk memahami data (dan model sederhana yang sesuai dengan data) dengan lebih baik, dan kemudian Anda berada dalam posisi yang jauh lebih baik untuk membuat model yang lebih kompleks, dan semoga lebih baik.

Kemudian, paskan model regresi linier, dengan 15 variabel Anda sebagai prediktor (nanti Anda dapat melihat kemungkinan interaksi). Kemudian, hitung residu dari kecocokan itu, yaitu, Jika model tersebut sesuai, artinya, ia dapat mengekstraksi sinyal (struktur) dari data, maka residu seharusnya tidak menunjukkan pola. Box, Hunter & Hunter: "Statistics for Experimenters" (yang harus Anda lihat, salah satu buku statistik terbaiknya) membandingkan ini dengan analogi dari kimia: Model ini adalah "filter" yang dirancang untuk menangkap kotoran dari air (data). Apa yang tersisa, yang melewati filter, kemudian harus "bersih" dan analisisnya (analisis residual) dapat menunjukkan bahwa, ketika itu tidak mengandung kotoran (struktur). Lihat

rsaya=Ysaya-Y^saya,saya=1,2,...,n
Memeriksa residual untuk normalitas dalam model linier umum

Untuk mengetahui apa yang harus diperiksa, Anda perlu memahami asumsi di balik regresi linier, lihat Apa daftar lengkap asumsi biasa untuk regresi linier?

Satu asumsi yang biasa adalah homoskedastisitas, yaitu varian konstan. Untuk memeriksanya, plot residual terhadap nilai prediksi, . Untuk memahami prosedur ini, lihat: Mengapa plot residual dibangun menggunakan residual vs nilai prediksi? . rsayaY^saya

Asumsi lain adalah linearitas . Untuk memeriksanya, plot residu terhadap masing-masing prediktor dalam model. Jika Anda melihat kelengkungan di plot itu, itu adalah bukti terhadap linearitas. Jika Anda menemukan non-linearitas, Anda dapat mencoba beberapa transformasi atau (lebih banyak pendekatan modern) memasukkan prediktor non-linear dalam model dengan cara non-linear, mungkin menggunakan splines (Anda memiliki 60 juta contoh sehingga harus cukup layak! ).

Maka Anda perlu memeriksa kemungkinan interaksi. Gagasan di atas dapat digunakan juga untuk variabel yang tidak ada dalam model yang sesuai . Karena Anda memasukkan model tanpa interaksi, itu termasuk variabel interaksi, seperti produk untuk dua variabel , . Jadi plot residu terhadap semua variabel interaksi ini. Posting blog dengan banyak plot contoh adalah http://docs.statwing.com/interpreting-residual-plots-to-improve-your-regress/xsayazsayaxz

Perawatan sepanjang buku adalah R Dennis Cook & Sanford Weisberg: "Residu dan pengaruh dalam regresi", Chapman & Hall. Perlakuan panjang buku yang lebih modern adalah Frank Harrell: "Strategi pemodelan Regresi".

Dan, muncul pertanyaan pada judul: "Dapatkah regresi berbasis pohon berkinerja lebih buruk daripada regresi linier biasa?" Ya tentu saja bisa. Model berbasis pohon memiliki fungsi regresi sebagai fungsi langkah yang sangat kompleks. Jika data benar-benar berasal dari (berperilaku sebagai disimulasikan dari) model linier, maka fungsi langkah dapat menjadi perkiraan yang buruk. Dan, seperti yang ditunjukkan oleh contoh-contoh di jawaban lain, model berbasis pohon mungkin memperkirakan jauh di luar kisaran prediktor yang diamati. Anda juga bisa mencoba randomforrest dan melihat seberapa baik itu daripada satu pohon.

kjetil b halvorsen
sumber
3
Hanya untuk memperjelas: Ketika Anda mengatakan "distribusi marjinal," Anda juga bisa mengatakan melihat distribusi univariat dari setiap variabel, benar? Mereka "marjinal" dalam arti bahwa distribusi akan muncul di margin sebaran atau sesuatu.
Mark White
Pertanyaan lain: Anda mengatakan, "Anda seharusnya tidak hanya membuang data pada algoritma yang berbeda dan melihat kualitas prediksi." Pertanyaan saya adalah: Mengapa? Jika Anda memeriksa keakuratan pada data uji, itu. Jika kita lebih tertarik pada prediksi, maka kita tidak perlu khawatir tentang kesalahan Tipe I atau hal seperti itu yang akan menjadi masalah jika kita tertarik pada signifikansi statistik dan pengujian ganda.
Mark White
Bahkan jika Anda hanya tertarik pada prediksi, Anda akan berada dalam posisi yang lebih baik untuk membuat model yang lebih baik jika Anda memahami data dengan lebih baik. Jadi, pertama-tama, cobalah untuk memahami data (dan model sederhana yang cocok dengan data) dengan lebih baik, dan kemudian Anda berada dalam posisi yang jauh lebih baik untuk membuat model yang lebih kompleks, dan semoga lebih baik.
kjetil b halvorsen
9

Peter Ellis memiliki contoh yang sangat sederhana

Gambar diunggah dari situs tertaut

di mana regresi linier berkinerja lebih baik daripada pohon regresi, ekstrapolasi di luar nilai yang diamati dalam sampel.

Dalam gambar ini titik hitam adalah nilai yang diamati, dan titik berwarna adalah nilai yang diprediksi. Data aktual dihasilkan sesuai dengan garis sederhana dengan beberapa noise, sehingga regresi linier dan jaringan saraf melakukan pekerjaan ekstrapolasi di luar data yang diamati. Model berbasis pohon tidak.

Sekarang, dengan 60 juta titik data Anda mungkin tidak khawatir tentang ini. (Masa depan selalu berhasil mengejutkanku!) Tapi itu adalah ilustrasi intuitif tentang satu situasi di mana pohon akan gagal.

Andy W
sumber
terima kasih atas jawaban yang intuitif. Meskipun saya memiliki banyak titik data, mengingat karakteristik data saya, saya pikir itu gagal untuk memperkirakan!
amityaffliction
karena model berbasis NN berkinerja lebih baik daripada regresi linier.
amityaffliction
satu pertanyaan lagi. Apakah 'sulit untuk memperkirakan' masalah umum teknik regresi non-parameterik?
amityaffliction
Non-parametrik adalah jaring yang lebar. Untuk memperkirakan, Anda perlu mengidentifikasi beberapa fungsi berkelanjutan yang mendasarinya. Model pohon lebih seperti mengidentifikasi banyak langkah kecil, oleh karena itu mereka tidak mengikuti garis di luar domain sampel yang diamati dalam contoh ini.
Andy W
5

Adalah fakta yang diketahui bahwa pohon tidak cocok untuk memodelkan hubungan yang benar-benar linier. Berikut ini adalah ilustrasi (Gbr 8.7) dari buku ISLR : Gambar 8.7

Baris Atas: Contoh klasifikasi dua dimensi di mana batas keputusan sebenarnya adalah linier, dan ditunjukkan oleh daerah yang diarsir. Pendekatan klasik yang mengasumsikan batas linier (kiri) akan mengungguli pohon keputusan yang melakukan pemisahan paralel dengan sumbu (kanan).

Jadi jika variabel dependen Anda bergantung pada regressor dengan cara yang kurang lebih linier, Anda akan mengharapkan bahwa "regresi linier berkinerja bagus".

Markus Loecher
sumber
2

Setiap pendekatan berbasis pohon keputusan (CART, C5.0, hutan acak, pohon regresi yang didorong, dll.) Mengidentifikasi area-area yang homogen dalam data Anda dan menetapkan nilai rata-rata data yang terkandung di wilayah tersebut ke 'cuti' yang sesuai. Jadi, mereka granular dan kemudian, mereka harus menunjukkan serangkaian langkah dalam output. Yang didasarkan pada 'hutan' tidak menunjukkan fenomena itu dengan jelas tetapi masih ada. Agregasi sejumlah besar pohon memberi nuansa. Ketika nilai yang diberikan di luar rentang asli datum ditugaskan ke 'cuti' yang mencakup kondisi ekstrim yang ditemukan dalam dataset pelatihan dan hasilnya adalah nilai rata-rata dari nilai-nilai yang terkandung dalam cuti itu. Jadi, tidak ada ekstrapolasi yang memungkinkan. Omong-omong, JST adalah ekstrapolator yang buruk. Anda dapat memeriksa: Pichaid Varoonchotikul - Perkiraan Banjir menggunakan Artificial Neural dan Hettiarachchi et al. Ekstrapolasi jaringan saraf tiruan untuk pemodelan curah hujan — hubungan limpasan yang sangat ilustratif dan mudah ditemukan di internet! Semoga berhasil!

Rafa_Mas
sumber