Saya telah membaca tulisan-tulisan berikut yang menjawab pertanyaan yang akan saya tanyakan:
Gunakan model Hutan Acak untuk membuat prediksi dari data sensor
Pohon keputusan untuk prediksi keluaran
Inilah yang telah saya lakukan sejauh ini: Saya membandingkan Regresi Logistik dengan Random Forests dan RF mengungguli Logistic. Sekarang peneliti medis yang bekerja dengan saya ingin mengubah hasil RF saya menjadi alat diagnostik medis. Sebagai contoh:
Jika Anda seorang pria Asia berusia antara 25 dan 35 tahun, memiliki Vitamin D di bawah xx dan Tekanan Darah di atas xx, Anda memiliki peluang 76% untuk terkena penyakit xxx.
Namun, RF tidak cocok untuk persamaan matematika sederhana (lihat tautan di atas). Jadi inilah pertanyaan saya: ide apa yang Anda miliki untuk menggunakan RF untuk mengembangkan alat diagnostik (tanpa harus mengekspor ratusan pohon).
Inilah beberapa ide saya:
- Gunakan RF untuk pemilihan variabel, kemudian gunakan Logistik (menggunakan semua interaksi yang mungkin) untuk membuat persamaan diagnostik.
- Entah bagaimana agregat hutan RF menjadi satu "mega-tree," yang entah bagaimana rata-rata membelah node di pohon.
- Mirip dengan # 2 dan # 1, gunakan RF untuk memilih variabel (misalkan total variabel m), lalu buat ratusan pohon klasifikasi, yang semuanya menggunakan setiap variabel m, lalu pilih satu pohon terbaik.
Ada ide lain? Juga, melakukan # 1 itu mudah, tetapi ada ide tentang bagaimana mengimplementasikan # 2 dan # 3?
sumber
Jawaban:
Berikut ini beberapa pemikiran:
Saya akan memilih 1. atau 2.
sumber
Saya harus berurusan dengan situasi yang sama menggunakan RF dalam pengaturan diagnostik, dengan para pemangku kepentingan yang terbiasa dengan algoritma yang bermuara pada persamaan tunggal yang dapat dibaca. Saya telah menemukan bahwa jika Anda mulai dengan menjelaskan pohon keputusan sederhana (di sini Anda dapat menggunakan persamaan), maka yang sangat rumit, dan kemudian menjelaskan kelemahan dari over-fitting, Anda mulai mendapatkan beberapa anggukan kepala. Setelah Anda menjelaskan bahwa banyak pohon kecil dapat mengurangi ketidakakuratan dengan ditumbuhkan secara berbeda ("acak"), dan bahwa mereka dapat dianggap sebagai suara ensemble atau rata-rata untuk menghindari pemasangan yang berlebihan tetapi masih diperhitungkan sebagai kasus tepi, Anda mendapatkan pemahaman. Berikut ini beberapa contoh slide yang saya gunakan dengan penerimaan yang baik:
Anda tidak dapat melarikan diri dari pohon di hutan, dan mereka yang memberikan algoritma begitu banyak daya prediksi dan ketahanan, sehingga jarang ada solusi yang lebih baik jika RF bekerja sangat baik untuk Anda. Yang akan membandingkan, seperti SVM (tergantung pada data Anda), akan sama rumitnya. Anda harus membuat mereka mengerti bahwa solusi yang baik akan menjadi semacam kotak hitam (untuk pengguna). Langkah terbaik Anda adalah membuat implementasi konsumsi yang tidak memerlukan upaya lebih dari yang dilakukan persamaan tunggal. Saya sudah sukses dengan membangun model RF di Python (via sklearn), dan membuat REST API server web sederhana yang memuat model itu ke dalam memori dan menerima variabel dalam POST untuk menampilkan prediksi. Anda juga dapat melakukan ini di Java atau R dengan sangat mudah, atau lewati API dan cukup buat biner / guci yang dapat dieksekusi yang menggunakan data sebagai argumen.
sumber
Saya memiliki pengalaman menyebarkan hutan acak di lingkungan SQL Server via
User Defined Function
. Triknya adalah untuk mengubahIF-THEN ELSE
aturan yang Anda dapatkan dari setiap pohon menjadiCASE-WHEN END
atauConditional Processing
konstruk lainnya (diakui saya telah menggunakan implementasi Bootstrap Forest JMP Pro - 500k baris kode SQL).Sama sekali tidak ada alasan mengapa ini tidak dapat dicapai dengan menggunakan
rattle
R
paket. LihatrandomForest2Rules
&printRandomForests
fungsi dalam paket itu. Keduanya mengambilrandom forest
objek sebagai input dan mengunjungi setiap pohon di hutan dan mengeluarkan serangkaianIF-THEN ELSE
aturan. Mengambil ini sebagai titik awal seharusnya tidak sulit mengubah logika ini ke dalam bahasa yang Anda inginkan secara otomatis, karena output dari fungsi yang disebutkan di atas adalah teks terstruktur.Di atas, juga membuatnya penting untuk memutuskan no terkecil. pohon yang Anda butuhkan di hutan untuk membuat prediksi pada tingkat akurasi yang diinginkan (petunjuk: plot (rf.object) menunjukkan kepada Anda pada titik mana prediksi hutan tidak membaik meskipun menambahkan lebih banyak pohon.) untuk menjaga no. garis untuk mewakili hutan turun.
sumber