Bagaimana saya bisa memvisualisasikan pentingnya input yang berbeda terhadap perkiraan untuk model non-linear black-box?

9

Saya sedang membangun alat ramalan interaktif (dengan python) sebagai bantuan untuk perkiraan yang dilakukan di organisasi saya. Sampai saat ini proses peramalan sebagian besar digerakkan oleh manusia, dengan peramal mengasimilasi data dalam jaringan saraf alami mereka dan menggunakan usus yang mereka pelajari merasa untuk membuat prediksi. Dari verifikasi perkiraan jangka panjang dan studi pemodelan prediktif yang telah saya lakukan saya telah menemukan apa yang Anda harapkan; peramal yang berbeda menunjukkan bias yang berbeda, efek dari beberapa prediktor tampaknya dilebih-lebihkan dan yang penting lainnya tampaknya diabaikan dan secara umum kinerja ramalannya biasa-biasa saja dibandingkan dengan model empiris yang relatif sederhana.

Perkiraan akan terus menjadi manual, tetapi saya mencoba membangun alat yang berguna untuk memberikan peramal dengan kuantifikasi yang lebih baik dari efek relatif dari peramal. Ada juga efek penting seperti pengaruh musiman yang sering diabaikan sehingga saya ingin alat untuk menyoroti kepada pengguna. Saya mengharapkan reaksi balik dan skeptis tentang proses pemodelan dari beberapa peramal yang lebih 'berpengalaman' (banyak dari mereka memiliki sedikit pengetahuan formal tentang statistik), sehingga komunikasi setidaknya sama pentingnya dan kinerja model itu sendiri dalam hal mencapai peningkatan terukur dalam akurasi perkiraan.

Model yang saya kembangkan memiliki komponen auto-regresif yang kuat yang kadang-kadang dimodifikasi secara signifikan oleh peristiwa yang muncul sebagai nilai terukur dalam beberapa prediktor yang, selama waktu non-peristiwa, mendekati nol. Ini sesuai dengan model mental yang digunakan peramal. Bagian kuncinya adalah mampu menunjukkan pengukuran 'acara' mana yang paling berpengaruh dalam mengarahkan prediksi menjauh dari nilai auto-regresif untuk setiap perkiraan yang diberikan. Saya membayangkan proses dengan cara ini; peramal meramalkan nilai tebakan terbaik mereka, model menyarankan yang lain dan peramal bertanya mengapa. Model menjawab sesuatu seperti "lihat di sini, nilai prediksi ini meningkatkan nilai perkiraan di Musim Panas. Jika itu Musim Dingin, itu akan bergerak ke arah lain. Saya tahu ada pengukuran lain ini,

Sekarang, bayangkan model itu adalah regresi linier sederhana. Orang bisa membayangkan menampilkan 'efek' relatif dari prediktor berdasarkan peristiwa dengan mengalikan nilai dengan model co-efisien dan ditampilkan sebagai grafik batang sederhana. Semua bilah dari prediktor yang berbeda menambah penyimpangan total dari nilai AR, dan ini secara ringkas dan jelas menunjukkan yang memiliki, dalam hal ini, memiliki pengaruh yang kuat.

Masalahnya adalah bahwa proses yang diprakirakan menampilkan tingkat non-linearitas yang tinggi dalam prediktor, atau setidaknya, saya telah lebih sukses dengan algoritma pembelajaran mesin kotak-kotak hitam-kotak (hutan acak dan GBM) dibandingkan dengan GLM untuk kumpulan data ini. Idealnya saya ingin dapat secara mulus mengubah model yang bekerja 'di bawah tenda' tanpa pengalaman pengguna berubah, jadi saya memerlukan beberapa cara umum untuk menunjukkan secara sederhana pentingnya pengukuran yang berbeda tanpa menggunakan beberapa pendekatan algoritma spesifik. Pendekatan saya saat ini adalah kuasi-linearisasi efek dengan menetapkan semua nilai ke nol kecuali untuk satu prediktor, catat deviasi yang diprediksi dan kemudian ulangi untuk semua prediktor, menampilkan hasil dalam bagan batang yang disebutkan di atas. Di hadapan non-linearitas yang kuat, ini mungkin tidak berfungsi dengan baik.

Bogdanovist
sumber
1
Apa yang akhirnya Anda lakukan - dapatkah Anda memasang satu atau dua gambar? Juga, "mengatur semua nilai ke nol kecuali untuk satu prediktor" - tidakkah Anda ingin gradien di sekitar nilai terbaik saat ini, bukan di sekitar semua 0?
denis

Jawaban:

4

Salah satu cara Anda dapat menilai pengaruh prediktor pada ramalan adalah dengan memperkirakan gradien output sehubungan dengan prediktor. Ini dapat dilakukan dengan memperkirakan turunan parsial dari fungsi prediksi non-linear sehubungan dengan masing-masing prediktor dengan perbedaan hingga.

Idealnya Anda akan melakukan ini pada input tes yang benar-benar diamati. Misalnya, Anda dapat meratakan nilai absolut dari perkiraan gradien di semua input tes dalam 2 hari sebelumnya. Besarnya gradien rata-rata ini dapat digunakan untuk mengurutkan pentingnya prediktor. (Anda harus berhati-hati dengan estimasi gradien untuk menggunakan unit yang sesuai dengan skor-z atau metode semacam itu.) Anda dapat menyimpan gradien yang diestimasi ini berdasarkan musim untuk analisis komparatif.

Lihat " Bagaimana Menjelaskan Keputusan Klasifikasi Individual ", oleh David Baehrens et. Al. di JMLR untuk lebih lanjut tentang ide ini. Makalah ini membahas klasifikasi tetapi juga mudah digeneralisasikan ke regresi.

Innuo
sumber
Itu luar biasa! Referensi yang sangat berguna yang akan membantu untuk masalah ini yang saya miliki dan di tempat lain.
Bogdanovist
2

Sudahkah Anda mencoba modul scikit-learning dengan python.

Anda dapat "computer_importance" untuk fitur randomForestClassifier-nya

jf328
sumber
1
Pertama saya juga berpikir bahwa menghitung fitur penting mungkin bisa membantu, tetapi pada akhirnya itu adalah pendekatan yang buruk ketika seseorang harus menjelaskan nilai prediksi untuk contoh spesifik. Pentingnya fitur hanya memberikan petunjuk yang tidak jelas kepada pakar manusia.
steffen
Selain itu, OP meminta model pendekatan independen ...
steffen
Masalah dengan ukuran kepentingan variabel adalah bahwa mereka berlaku untuk seluruh dataset rata-rata, daripada memberi tahu Anda apa yang sebenarnya penting dalam satu kasus tertentu.
Bogdanovist
Sebenarnya saya pikir ini adalah pendekatan model independen, Anda mungkin memang menerapkannya pada pengklasifikasi lain daripada hutan acak. Di situs web Breiman ada komentar halus tentang bagaimana Anda dapat menghitung variabel penting untuk satu kasus. stat.berkeley.edu/~breiman/RandomForests/cc_home.htm#varimp (kalimat terakhir) Saya pikir ini belum dipelajari secara luas, atau setidaknya diuji secara ekstensif. Arti penting variabel tidak selalu seperti yang Anda inginkan. Contohnya bukan ketika Anda ingin membantu seorang praktisi untuk mengambil keputusan pada satu kasus. Ini adalah topik yang sangat menarik.
Simone
Ada sebuah makalah yang menarik di mana Breiman membahas sedikit tentang metode ini pada regresi logistik juga: "Pemodelan Statistik: Dua Budaya". Bacaan yang bagus. Kalimat yang paling saya sukai adalah: "Definisi saya tentang pentingnya variabel didasarkan pada prediksi. Sebuah variabel mungkin dianggap penting jika menghapusnya secara serius mempengaruhi akurasi prediksi." Pernyataan ini berlaku untuk klasifikasi apa pun yang mungkin Anda gunakan.
Simone