Apakah rpart menggunakan pemisahan multivarian secara default?

8

Saya tahu bahwa rpartfungsi R menyimpan data yang diperlukan untuk mengimplementasikan pemisahan multivarian, tetapi saya tidak tahu apakah itu benar-benar melakukan pemisahan multivarian. Saya sudah mencoba merisetnya secara online dengan melihat rpartdokumen, tetapi saya tidak melihat informasi apa pun yang dapat melakukannya atau sedang melakukannya. Adakah yang tahu pasti?

chubbsondubs
sumber
Apa yang Anda maksudkan dengan split multivariat? Uji multivarian atribut mana yang harus digunakan untuk split atau split berdasarkan beberapa fungsi dari beberapa atribut?
Ini adalah split yang menggunakan lebih dari satu variabel. Secara geometris ini berarti perpecahan di sepanjang hyperplane, bukan bidang yang tegak lurus terhadap salah satu sumbu.
chubbsondubs

Jawaban:

14

Rpart hanya menyediakan pemisahan univariat. Saya percaya, berdasarkan pertanyaan Anda, bahwa Anda tidak sepenuhnya akrab dengan perbedaan antara metode partisi univariat dan metode partisi multivariat. Saya telah melakukan yang terbaik untuk menjelaskan ini di bawah ini, serta memberikan beberapa referensi untuk penelitian lebih lanjut dan untuk menyarankan beberapa paket R untuk mengimplementasikan metode ini.

Rpart adalah classifier berbasis pohon yang menggunakan partisi rekursif. Dengan metode pemartisian, Anda harus menentukan titik-titik dalam data Anda di mana pemisahan harus dilakukan. Algoritme rpart dalam R melakukan ini dengan menemukan variabel dan titik yang memisahkan terbaik (dan dengan demikian mengurangi) RSS. Karena pemisahan hanya terjadi di sepanjang satu variabel pada satu waktu, ini adalah pemisahan univariat. Split Multivariat biasanya didefinisikan sebagai partisi simultan di sepanjang beberapa sumbu (karenanya multivarian), yaitu simpul rpart pertama mungkin terbelah sepanjang Umur> 35, simpul kedua mungkin dibagi sepanjang Pendapatan> 25.000, dan simpul ketiga mungkin terbelah di sepanjang Kota di sebelah barat Mississippi. Node kedua dan ketiga terpecah pada himpunan bagian yang lebih kecil dari keseluruhan data, sehingga pada node kedua kriteria pendapatan terbaik membagi RSS hanya untuk orang-orang yang memiliki usia lebih dari 35, itu tidak berlaku untuk pengamatan yang tidak ditemukan dalam simpul ini, sama berlaku untuk kriteria Kota. Satu dapat terus melakukan ini sampai ada simpul untuk setiap pengamatan dalam dataset Anda (rpart menggunakan fungsi ukuran ember minimum selain kriteria ukuran simpul minimum dan parameter cp yang merupakan minimum nilai r-kuadrat harus meningkat untuk terus pas).

Metode multivariat, seperti Metode Induksi Aturan Pasien (paket utama dalam R) akan secara bersamaan dipisah dengan memilih, misalnya, Semua Pengamatan di mana Penghasilan lebih besar dari 22.000, Usia> 32, dan Kota-kota Barat Atlanta. Alasan mengapa kecocokan tersebut mungkin berbeda adalah karena perhitungan untuk kecocokan adalah multivariat, bukan univariat, kecocokan ketiga kriteria ini dihitung berdasarkan kesesuaian simultan dari ketiga variabel pada semua pengamatan yang memenuhi kriteria ini daripada berdasarkan pembagian yang iteratif berdasarkan perpecahan univariat (seperti dengan rpart).

Ada berbagai kepercayaan dalam hal efektivitas metode partisi univariat versus multivariat. Secara umum apa yang saya lihat dalam praktek, adalah bahwa kebanyakan orang lebih suka partisi univariat (seperti rpart) untuk tujuan penjelasan (hanya digunakan dalam prediksi ketika berhadapan dengan masalah di mana strukturnya didefinisikan dengan sangat baik dan variasi antar variabel cukup konstan, inilah mengapa ini sering digunakan dalam pengobatan). Model pohon univariat biasanya digabungkan dengan pelajar ensemble saat digunakan untuk prediksi (yaitu Hutan Acak). Orang yang menggunakan partisi atau pengelompokan multivariat (yang sangat erat hubungannya dengan pengelompokan multivariat) sering melakukannya untuk masalah kompleks yang metode univariatnya sangat buruk, dan melakukannya terutama untuk prediksi, atau mengelompokkan pengamatan ke dalam kategori.

Saya sangat merekomendasikan buku Julian Faraway, Extending the Linear Model with R. Chapter 13, yang didedikasikan sepenuhnya untuk penggunaan Trees (semuanya univariat). Jika Anda tertarik lebih jauh dalam metode multivariat, Elemen Pembelajaran Statistik oleh Hastie et. al, memberikan tinjauan yang sangat baik tentang banyak metode multivariat, termasuk PRIM (walaupun Friedman di Stanford memiliki artikel aslinya tentang metode yang diposting di situs webnya), serta metode pengelompokan.

Sehubungan dengan Paket R untuk menggunakan metode ini, saya yakin Anda sudah menggunakan paket rpart, dan saya telah menyebutkan paket prim di atas. Ada berbagai rutinitas pengelompokan bawaan, dan saya cukup menyukai paket partai yang disebutkan oleh orang lain di utas ini, karena penerapan inferensi kondisional dalam proses pembuatan pohon keputusan. Paket optpart memungkinkan Anda melakukan partisi multivarian, dan paket mvpart (juga disebutkan oleh orang lain) memungkinkan Anda melakukan multivariate rpart tree, namun saya pribadi lebih suka menggunakan partDSA, yang memungkinkan Anda menggabungkan node lebih jauh di pohon Anda untuk membantu mencegah partisi yang serupa pengamatan, jika saya merasa rpart dan party tidak memadai untuk tujuan pemodelan saya.

Catatan: Dalam contoh saya tentang pohon rpart di paragraf 2, saya menjelaskan bagaimana partisi bekerja dengan nomor simpul, jika seseorang menggambar pohon ini, partisi akan melanjutkan ke kiri jika aturan untuk pemisahan itu benar, namun di RI percaya perpecahan itu benar-benar berproses ke kanan jika aturannya benar.

Adam
sumber
Adam jawaban yang bagus. Itulah tepatnya yang saya tanyakan. Namun, Anda menambahkan sedikit informasi bahwa saya kesulitan menemukan lebih banyak informasi. Kriteria berhenti The Mallow's CP. Saya telah melihat melalui kode sumber R, tetapi terlalu sulit untuk mengetahui bagaimana mereka memilih untuk berhenti. Saya kira-kira punya ide, tapi saya butuh makalah atau diskusi tentang cara kerjanya sehingga saya bisa selesai mengimplementasikannya. Apakah Anda punya informasi tentang itu?
chubbsondubs
Jadi, saya memeriksa manual referensi rpart, dan ternyata saya salah. Sementara salah satu kriteria untuk berhenti di rpart disebut "cp" ini adalah kependekan dari "parameter kompleksitas" dan hanya jumlah minimum r ^ 2 yang harus ditingkatkan untuk mengejar pemisahan tertentu. Saya telah memperbaiki posting saya di atas untuk mencerminkan hal ini. Kurangnya tes statistik dalam aturan pemisahan adalah salah satu alasan mengapa saya menggunakan paket pesta lebih dari paket rpart. Dengan paket partai, metode default mengimplementasikan nilai-p yang dikoreksi Bonferroni sebagai kriteria penghentian (default p = 0,05). Untuk detailnya lihat sketsa.
Adam
Saya merasakan fakta bahwa rpart tidak menggunakan kriteria pemberhentian adalah aset, bukan kewajiban. Perpecahan mungkin tampak tidak berharga, namun membuka jalan untuk pemisahan selanjutnya lebih jauh ke bawah pohon, yang mungkin cukup signifikan. Kebijakan "tumbuh, lalu pangkas" seperti yang diterapkan di rpart akan menghindari penghentian dini dan bagi saya pendekatan yang masuk akal.
F. Tusell
@Tusell bahwa seluruh ide di balik penelitian CART adalah bahwa memilih kriteria berhenti adalah suboptimal. Tumbuhkan pohon penuh kemudian gunakan pemangkasan untuk menemukan pohon yang optimal. Namun, seperti yang ditunjukkan @Adam rpart tidak persis bekerja seperti itu. Bagian dari itu saya pikir adalah pengoptimalan untuk dataset besar. Jika dapat memangkas subtree lebih awal tanpa menjelajahi, ini dapat menghemat lebih banyak waktu CPU daripada melalui sesi pemangkasan dan ekspansi penuh. Seperti yang Anda tunjukkan, itu berarti beberapa pohon tidak sepenuhnya dieksplorasi dan Anda harus mengubah parameter cp agar berfungsi.
chubbsondubs
@ Adam dihitung R ^ 2 dari dataset pengujian atau apakah menggunakan set pemangkasan untuk menghitung MSE?
chubbsondubs
1

Sejauh yang saya tahu, itu tidak; tapi belum menggunakannya untuk sementara waktu. Jika saya mengerti Anda dengan baik, Anda mungkin ingin melihat paket mvpart sebagai gantinya.

F. Tusell
sumber
1

Terminologi Anda membingungkan. Karena maksud Anda pemisahan menggunakan lebih dari satu variabel, atau pohon yang memungkinkan respons multivarian (sebagai lawan dari univariat)? Saya kira yang terakhir.

F. Tusell telah mengarahkan Anda ke paket mvpart, yang menambahkan kriteria multivarian untuk ketidakmurnian simpul yang dievaluasi untuk semua kemungkinan pemisahan pada setiap tahap pembangunan pohon.

Alternatifnya adalah paket pesta , yang fungsinya ctree()dapat menangani respons multivarian.

Gavin Simpson
sumber
Sebenarnya saya mengacu pada pemisahan menggunakan lebih dari satu variabel. Jika Anda membaca buku CART Leo Breiman, ini mengacu pada ini sebagai pemisahan multi-variate sebagai kebalikan dari uni-variate di mana hanya satu variabel dipertimbangkan. Terima kasih atas jawabannya.
chubbsondubs
1
Semua variabel dipertimbangkan rpart, pemisah biner dibentuk dengan mencari semua variabel dan semua kemungkinan lokasi pemisah dalam setiap variabel. rpartjuga menyimpan informasi tentang pemisahan pengganti yang dapat digunakan ketika ada data yang hilang dalam variabel Anda. Apakah ini membantu?
Gavin Simpson
Jika maksud Anda pemisahan yang merupakan kombinasi dari dua variabel atau lebih, tidak, rparttidak menangani kasus itu.
Gavin Simpson
1

Perpecahan multivarian seperti yang ditentukan dalam buku CART tidak diterapkan di rpart. Paket perangkat lunak CART dari Salford Systems memiliki fitur ini, tetapi AFAIK menggunakan algoritma kepemilikan yang dilisensikan dari Breiman, Friedman et al.

Hong Ooi
sumber