Mengapa Random Forest tidak menangani nilai yang hilang dalam prediktor?

42

Apa alasan teoretis untuk tidak menangani nilai yang hilang? Mesin peningkat gradien, pohon regresi menangani nilai yang hilang. Mengapa Random Forest tidak melakukan itu?

Fedorenko Kristina
sumber
3
Mereka ditangani dalam partypaket R. Satu artikel blog di sini: exegetic.biz/blog/2013/05/…
Stéphane Laurent

Jawaban:

34

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.

rapaio
sumber
Mari kita lanjutkan diskusi ini dalam obrolan .
Nabi60091
Anda menyentuh "menghukum skor pengotor dengan rasio nilai yang hilang". Bagaimana ini secara langsung mempengaruhi pemilihan nilai dimensi optimal yang dipilih pada tingkat / cabang pohon tertentu?
javadba
16

"Apa alasan teoretis [untuk RF] untuk tidak menangani nilai yang hilang? Mesin peningkat gradien, pohon regresi menangani nilai yang hilang. Mengapa Random Forest tidak melakukan itu?"

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:

"Meskipun pemisahan pengganti bekerja dengan baik untuk pohon, metode ini mungkin tidak cocok untuk hutan. Kecepatan adalah satu masalah. Menemukan pemisahan pengganti intensif secara komputasi dan dapat menjadi tidak layak ketika menumbuhkan sejumlah besar pohon, terutama untuk pohon jenuh penuh yang digunakan oleh Selanjutnya, pemisahan pengganti mungkin bahkan tidak berarti dalam paradigma hutan. RF secara acak memilih variabel ketika membelah sebuah simpul dan, dengan demikian, variabel dalam sebuah simpul mungkin tidak berkorelasi, dan pemisahan pengganti yang wajar mungkin tidak ada. Kekhawatiran lain adalah bahwa pemisahan pengganti mengubah interpretasi variabel, yang mempengaruhi langkah-langkah seperti [Pentingnya Variabel].

Untuk alasan ini, strategi berbeda diperlukan untuk RF. "

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:

"Hutan acak paling sederhana dengan fitur acak dibentuk dengan memilih secara acak, di setiap simpul, sekelompok kecil variabel input untuk dipecah. Tumbuhkan pohon menggunakan metodologi CART hingga ukuran maksimum dan jangan memangkas." [Penekanan saya]

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).

Nabi60091
sumber
11

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.

Hemant Ishwaran
sumber
3
Selamat datang di situs kami! Perhatikan bahwa nama pengguna Anda, identitas, & tautan ke halaman pengguna Anda secara otomatis ditambahkan ke setiap posting yang Anda buat, sehingga tidak perlu untuk menandatangani posting Anda. Faktanya, kami lebih suka Anda tidak melakukannya.
Silverfish
1
Terima kasih atas jawaban yang menarik (+1). Saya mengambil kebebasan untuk menambahkan referensi lengkap & tautan untuk beberapa makalah yang dikutip, tetapi tidak dapat menemukan Tang & Ishwaran (2015), "Algoritma data hutan yang hilang secara acak". Apakah sudah diterbitkan?
Scortchi
9

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.

Frank Harrell
sumber
7

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.

Pasang kembali Monica
sumber
Terima kasih atas jawaban Anda! Namun, kedua metode ini menggantikan nilai yang hilang. Tetapi dalam GBM atau pohon regresi nilai yang hilang tidak menggantikan apa pun. Apa perbedaan teoretis antara, misalnya GBM dan RF dalam pengertian ini?
Fedorenko Kristina
Saya bukan ahli GBM, tetapi penanganan RF nilai yang hilang tampaknya berakar pada gagasan imputasi, en.wikipedia.org/wiki/Imputation_(statistics) Dalam kasus di mana nilai yang hilang tidak hilang secara acak, Anda hasilnya bisa menjadi bias karena hilang. Imputasi berupaya memulihkan nilai yang hilang ini dan mengurangi bias.
Pasang kembali Monica
2

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).

Robert Kubinec
sumber
0

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()dan cforest()dari paket partykit memungkinkan untuk menerapkan MIA dengan menyampaikan argumen ctree_control(MIA = TRUE)mereka control.

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.

Marjolein Fokkema
sumber