Versi pendek: Saya mencari paket R yang dapat membangun pohon keputusan sedangkan setiap daun di pohon keputusan adalah model Regresi Linier penuh. AFAIK, perpustakaan rpart
membuat pohon keputusan di mana variabel dependen konstan di setiap daun. Apakah ada perpustakaan lain (atau rpart
pengaturan yang saya tidak sadari) yang dapat membangun pohon seperti itu?
Versi panjang: Saya mencari algoritme yang membangun pohon keputusan berdasarkan kumpulan data pelatihan. Setiap keputusan di pohon membagi data pelatihan yang ditetapkan menjadi dua bagian, sesuai dengan kondisi pada salah satu variabel independen. Akar pohon berisi kumpulan data lengkap, dan setiap item dalam kumpulan data terkandung persis dalam satu simpul daun.
Algoritmanya seperti ini:
- Mulailah dengan dataset lengkap, yang merupakan simpul akar dari pohon. Memilih node ini dan menyebutnya .
- Membuat model Regresi Linier pada data di .
- Jika dari model linier lebih tinggi dari beberapa ambang , maka kita selesai dengan , jadi tandai sebagai daun dan lompat ke langkah 5. N θ R 2 N N
- Coba putuskan secara acak, dan pilih yang menghasilkan di subnode:
- Pilih variabel independen acak , serta ambang acak .
- Keputusan membagi kumpulan data menjadi dua node baru, dan .
- Buat model Regresi Linier pada dan , dan hitung mereka (sebut saja dan ). ~ N R2 r ~ r
- Dari semua tupel , pilih yang dengan maksimum . Ini menghasilkan keputusan baru di pohon, dan memiliki dua subnode baru dan .( v i , θ i , r , ~ r ) m i n ( r , ~ r ) N N ~ N
- Kami memiliki selesai pengolahan . Pilih node yang belum diproses dan kembali ke langkah 2. Jika semua node telah diproses, algoritma berakhir.N
Ini akan secara rekursif membangun pohon keputusan yang membagi data menjadi bagian-bagian yang lebih kecil, dan menghitung Model Linier pada masing-masing bagian tersebut.
Langkah 3 adalah kondisi keluar, yang mencegah algoritma overfitting. Tentu saja, ada kemungkinan kondisi keluar lainnya:
- Keluar jika kedalaman di pohon di atas
- Keluar jika kumpulan data dalam lebih kecil dari
Apakah ada algoritma seperti itu dalam paket R?