Apa alasan teoretis untuk tidak menangani nilai yang hilang? Mesin peningkat gradien, pohon regresi menangani nilai yang hilang. Mengapa Random Forest tidak melakukan itu?
random-forest
missing-data
gbm
Fedorenko Kristina
sumber
sumber
party
paket R. Satu artikel blog di sini: exegetic.biz/blog/2013/05/…Jawaban:
Gradient Boosting Trees menggunakan pohon CART (dalam pengaturan standar, seperti yang diusulkan oleh penulisnya). Pohon CART juga digunakan di Hutan Acak. Apa yang dikatakan @ user777 benar, bahwa pohon RF menangani nilai-nilai yang hilang baik melalui imputasi dengan rata-rata, baik dengan rata-rata kasar / mode, baik dengan rata-rata / mode berdasarkan pada perkiraan. Metode-metode ini diusulkan oleh Breiman dan Cutler dan digunakan untuk RF. Ini adalah referensi dari penulis Nilai yang hilang dalam set pelatihan .
Namun, seseorang dapat membangun GBM atau RF dengan jenis pohon keputusan lainnya. Pengganti yang biasa untuk CART adalah C4.5 diusulkan oleh Quinlan. Dalam C4.5 nilai-nilai yang hilang tidak diganti pada set data. Sebagai gantinya, fungsi pengotor yang dihitung memperhitungkan nilai yang hilang dengan menghukum skor pengotor dengan rasio nilai yang hilang. Pada tes mengatur evaluasi dalam sebuah simpul yang memiliki tes dengan nilai yang hilang, prediksi dibangun untuk setiap simpul anak dan dikumpulkan kemudian (dengan pembobotan).
Sekarang, dalam banyak implementasi C4.5 digunakan sebagai ganti CART. Alasan utamanya adalah untuk menghindari perhitungan yang mahal (CART memiliki pendekatan statistik yang lebih ketat, yang membutuhkan lebih banyak perhitungan), hasilnya tampaknya sama, pohon yang dihasilkan seringkali lebih kecil (karena CART adalah biner dan C4.5 tidak). Saya tahu bahwa Weka menggunakan pendekatan ini. Saya tidak tahu perpustakaan lain, tapi saya berharap itu bukan situasi yang unik. Jika demikian halnya dengan implementasi GBM Anda, maka ini akan menjadi jawaban.
sumber
RF tidak menangani nilai yang hilang, hanya saja tidak dengan cara yang sama seperti yang dilakukan CART dan algoritma pohon keputusan serupa lainnya. User777 dengan benar menjelaskan dua metode yang digunakan oleh RF untuk menangani data yang hilang (median imputasi dan / atau pengukuran berdasarkan kedekatan), sedangkan Frank Harrell dengan benar menjelaskan bagaimana nilai-nilai yang hilang ditangani dalam CART (pemisahan pengganti). Untuk info lebih lanjut, lihat tautan tentang penanganan data yang hilang untuk CART (atau itu sepupu FOSS: RPART ) dan RF .
Sebuah jawaban untuk pertanyaan Anda yang sebenarnya tercakup dengan jelas, IMHO, dalam makalah Ishwaran et al 2008 berjudul Random Survival Forests . Mereka memberikan penjelasan yang masuk akal berikut mengapa RF tidak menangani data yang hilang dengan cara yang sama seperti CART atau pengklasifikasi pohon keputusan tunggal yang serupa:
Ini adalah samping, tetapi bagi saya, ini mempertanyakan mereka yang mengklaim bahwa RF menggunakan ansambel model CART. Saya telah melihat klaim ini dibuat di banyak artikel, tetapi saya belum pernah melihat pernyataan seperti itu bersumber pada teks otoritatif tentang RF. Untuk satu, pohon dalam RF ditanam tanpa pemangkasan , yang biasanya bukan pendekatan standar ketika membangun model CART. Alasan lain adalah alasan yang Anda singgung dalam pertanyaan Anda: CART dan ansambel pohon keputusan lainnya menangani nilai yang hilang, sedangkan RF [asli] tidak, setidaknya tidak secara internal seperti CART.
Dengan peringatan itu dalam pikiran, saya pikir Anda bisa mengatakan bahwa RF menggunakan ansambel pohon keputusan mirip-CART (yaitu, sekelompok pohon yang tidak ditanggalkan, tumbuh hingga batas maksimumnya, tanpa kemampuan untuk menangani data yang hilang melalui pemisahan pengganti). Mungkin ini adalah salah satu dari perbedaan semantik yang rumit itu, tetapi ini adalah salah satu yang menurut saya perlu diperhatikan.
EDIT : Di sisi catatan saya, yang tidak terkait dengan pertanyaan aktual yang diajukan, saya menyatakan bahwa "Saya belum pernah melihat pernyataan seperti itu bersumber pada teks otoritatif tentang RF". Ternyata Breiman DID secara khusus menyatakan bahwa pohon keputusan CART digunakan dalam algoritma RF asli:
Sumber: p.9 dari Random Forests. Breiman (2001)
Namun, saya masih berdiri (walaupun lebih genting) dengan anggapan bahwa ini adalah pohon keputusan seperti CART di mana mereka ditanam tanpa pemangkasan, sedangkan CART biasanya tidak pernah berjalan dalam konfigurasi ini karena hampir pasti akan terlalu cocok dengan data Anda ( karena itu pemangkasan di tempat pertama).
sumber
Hutan acak tidak menangani data yang hilang dan ada dua cara berbeda untuk melakukannya:
1) Tanpa memasukkan data yang hilang, tetapi memberikan inferensi. 2) Menempatkan data. Data yang dipersoalkan kemudian digunakan untuk inferensi.
Kedua metode tersebut diimplementasikan dalam R-package randomForestSRC saya (ditulis bersama Udaya Kogalur). Pertama, penting untuk diingat bahwa karena hutan acak menggunakan pemilihan fitur acak, metode data hilang tradisional yang digunakan oleh pohon tunggal (CART dan sejenisnya) tidak berlaku. Poin ini dibuat dalam Ishwaran et al. (2008), "Hutan Kelangsungan Hidup Acak", Annals of Applied Statistics , 2 , 3 , dan diartikulasikan dengan baik oleh salah satu komentator.
Metode (1) adalah metode "on the fly imputation" (OTFI). Sebelum membelah sebuah simpul, data yang hilang untuk suatu variabel diperhitungkan dengan secara acak menggambar nilai-nilai dari data yang ada di dalam tas. Tujuan dari data imputasi ini adalah untuk memungkinkan untuk menetapkan kasus ke simpul anak jika node terpecah pada variabel dengan data yang hilang. Namun data yang dipersengketakan tidak digunakan untuk menghitung statistik split yang hanya menggunakan data yang tidak hilang. Setelah pemecahan simpul, data yang dimasukkan akan disetel ulang menjadi hilang dan proses ini diulangi hingga simpul terminal tercapai. OTFI menjaga integritas data out-of-bag dan oleh karena itu nilai-nilai kinerja seperti variabel pentingnya (VIMP) tetap tidak bias. Algoritma OTFI dijelaskan dalam Ishwaran et al (2008) dan diimplementasikan dalam paket acak randomSurvivalForest,
Metode (2) diimplementasikan menggunakan fungsi "impute" di randomForestSRC. Metode pemisahan yang tidak diawasi, acak, dan multivarian untuk memasukkan data tersedia. Sebagai contoh, pemisahan multivariat menggeneralisasikan metode imputasi missForest yang sangat sukses ( Stekhoven & Bühlmann (2012), "MissForest — imputasi nilai hilang yang non-parametrik untuk data tipe campuran", Bioinformatika , 28 , 1 ). Memanggil fungsi impute dengan data yang hilang akan mengembalikan frame data yang diimputasi yang dapat disesuaikan menggunakan fungsi forest primer "rfsrc".
Perbandingan terperinci dari berbagai algoritme data hutan yang hilang diimplementasikan menggunakan "sengketa" diuraikan dalam makalah baru-baru ini dengan Fei Tang "Algoritma data hutan yang hilang secara acak", 2017 . Saya merekomendasikan untuk berkonsultasi dengan file bantuan "rfsrc" dan "impute" dari randomForestSRC untuk rincian lebih lanjut tentang imputasi dan OTFI.
sumber
Partisi rekursif menggunakan pemisahan pengganti berdasarkan prediktor yang tidak hilang yang berkorelasi dengan prediktor yang memiliki nilai yang hilang untuk pengamatan. Tampaknya secara teori hutan acak dapat diimplementasikan yang menggunakan ide yang sama. Saya tidak tahu apakah ada perangkat lunak hutan acak yang melakukannya.
sumber
Random Forest memiliki dua metode untuk menangani nilai yang hilang, menurut Leo Breiman dan Adele Cutler, yang menciptakannya.
Yang pertama cepat dan kotor: hanya mengisi nilai median untuk variabel kontinu, atau nilai yang tidak ada yang paling umum berdasarkan kelas .
Metode kedua mengisi nilai-nilai yang hilang, kemudian menjalankan RF, kemudian untuk nilai-nilai kontinyu yang hilang, RF menghitung rata-rata bobot kedekatan dari nilai-nilai yang hilang. Kemudian proses ini diulang beberapa kali. Kemudian model dilatih untuk terakhir kalinya menggunakan set data RF-imputed.
sumber
Alih-alih menggunakan nilai median, dll., Saya sangat merekomendasikan melihat paket missRanger (saat ini dalam pengembangan di Github) atau paket R missForest). Kedua paket ini menggunakan hutan acak untuk pertama-tama menyalahkan data Anda menggunakan metode yang mirip dengan beberapa imputasi melalui persamaan dirantai (MICE). Ini akan menjadi metode imputasi yang tepat untuk digunakan karena berkaitan erat dengan model analisis Anda yang sebenarnya. Anda kemudian dapat menggunakan semua data Anda tanpa harus khawatir akan menjatuhkan baris individual karena pengamatan yang hilang. Selain itu, nilai yang diperhitungkan akan jauh lebih realistis daripada hanya memilih median atau mode.
Anda dapat menggunakan hanya satu set data imputasi yang diisi untuk analisis Anda, tetapi cara terbaik untuk menggabungkan ketidakpastian atas nilai yang hilang adalah dengan menjalankan beberapa proses dari metode imputasi ini, dan kemudian memperkirakan model Anda pada masing-masing set data yang dihasilkan (yaitu, beberapa imputasi) dan kemudian gabungkan estimasi menggunakan aturan Rubin (lihat paket R mitools).
sumber
Untuk CART, Anda dapat menerapkan pendekatan missing-in-attribute (MIA). Artinya, untuk prediktor kategori, kode Anda hilang sebagai kategori terpisah. Untuk prediktor numerik, Anda membuat dua variabel baru untuk setiap variabel dengan missings: satu di mana Anda kode missings sebagai -Inf dan satu di mana Anda kode missings sebagai + Inf. Kemudian Anda menerapkan fungsi hutan acak seperti biasa ke data Anda.
Keuntungan MIA: 1) Murah secara komputasional, 2) tidak menghasilkan banyak dataset dan dengan demikian menjadi model, seperti halnya beberapa imputasi (literatur imputasi-of-missing-data umumnya setuju bahwa satu dataset imputasi tidak cukup), 3) tidak memerlukan Anda memilih metode statistik dan / atau model untuk memasukkan data.
Fungsi
ctree()
dancforest()
dari paket partykit memungkinkan untuk menerapkan MIA dengan menyampaikan argumenctree_control(MIA = TRUE)
merekacontrol
.Program RuleFit Jerome Friedman tampaknya menggunakan MIA untuk mengatasi kehilangan, lihat https://statweb.stanford.edu/~jhf/r-rulefit/rulefit3/RuleFit_help.html#xmiss .
Deskripsi pendekatan MIA dapat ditemukan di Twala et al. (2008):
Twala, BETH, Jones, MC, dan Hand, DJ (2008). Metode yang baik untuk mengatasi data yang hilang di pohon keputusan. Pattern Recognition Letters, 29 (7), 950-956.
sumber