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.
sumber
Jawaban:
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.
sumber
Sudahkah Anda mencoba modul scikit-learning dengan python.
Anda dapat "computer_importance" untuk fitur randomForestClassifier-nya
sumber