Algoritma pembelajaran mesin apa yang baik untuk memperkirakan fitur mana yang lebih penting?

12

Saya memiliki data dengan sejumlah fitur minimum yang tidak berubah, dan beberapa fitur tambahan yang dapat berubah dan berdampak besar pada hasilnya. Kumpulan data saya terlihat seperti ini:

Fitur-fiturnya adalah A, B, C (selalu ada), dan D, E, F, G, H (kadang-kadang ada)

A = 10, B = 10, C = 10                  outcome = 10
A = 8,  B = 7,  C = 8                   outcome = 8.5
A = 10, B = 5,  C = 11, D = 15          outcome = 178
A = 10, B = 10, C = 10, E = 10, G = 18  outcome = 19
A = 10, B = 8,  C = 9,  E = 8,  F = 4   outcome = 250
A = 10, B = 11, C = 13, E = 8,  F = 4   outcome = 320
...

Saya ingin memprediksi nilai hasil, dan kombinasi parameter tambahan sangat penting untuk menentukan hasil. Dalam contoh ini, kehadiran E dan F mengarah ke hasil yang besar, sedangkan kehadiran E dan G tidak. Algoritma atau teknik pembelajaran mesin apa yang bagus untuk menangkap fenomena ini?

Benjamin Crouzier
sumber
Dengan "kadang-kadang hadir", apakah maksud Anda bahwa Anda hanya mengetahui nilainya beberapa saat? Atau mereka diketahui tidak berperan dalam banyak kasus? Atau mungkin sesuatu yang lain?
David J. Harris
@ DavidJ.Harris Dengan "kadang-kadang hadir", maksud saya bahwa contoh pelatihan khusus tidak memiliki properti. Itu seperti jika itu sama dengan nol. Dalam masalah saya, semua fitur saya akan menjadi angka positif dalam rentang yang diberikan (misalnya, dari 5 hingga 15 atau 100 hingga 1000).
Benjamin Crouzier
1
mungkin baik untuk melihat tautan ini eren.0fees.net/2012/10/22/…
erogol

Jawaban:

14

Ini adalah salah satu bidang utama penelitian dalam Pembelajaran Mesin dan dikenal sebagai Pemilihan Fitur .

Secara umum, satu-satunya cara untuk mengatakan apa subset fitur terbaik adalah (untuk input ke beberapa model prediksi yang dapat menggabungkan mereka), adalah dengan mencoba semua subset yang mungkin. Ini biasanya tidak mungkin, jadi orang mencoba untuk mencicipi ruang himpunan bagian fitur dengan berbagai heuristik (lihat artikel untuk beberapa pendekatan khas).

Bitwise
sumber
3

Dari pemahaman saya, Anda mencari ukuran variabel penting. Ini datang dalam beberapa rasa berdasarkan pada beberapa pendekatan teoretis yang berbeda, tetapi semua memiliki tautan kuat ke metode yang digunakan untuk mengoptimalkan algoritma yang Anda bicarakan. Secara umum, setiap algoritma pembelajaran mesin akan memiliki metode optimasi kanonik; propagasi balik untuk jaringan saraf, optimisasi minimum berurutan untuk SVM, berbagai kriteria informasi dan uji signifikansi statistik untuk pohon keputusan termasuk chi kuadrat signifikansi atau pengotor gini. Tentu saja, metode optimasi novel lainnya yang lebih sering sering diusulkan untuk masing-masing algoritma.

Metode optimasi untuk setiap algoritma ini pada dasarnya menentukan variabel penting bagi model yang ada. Pada dasarnya, Anda sedang mencari perkiraan atau representasi yang dapat ditafsirkan dari hasil langkah optimasi yang dilakukan algoritma. Namun, ini bermasalah karena beberapa alasan.

  1. Kesulitan menentukan pengaruh variabel yang diberikan pada pemilihan bentuk model, mengingat bahwa seleksi sering merupakan proses stokastik itu sendiri. Variabel mempengaruhi pemilihan model sampai tingkat tertentu, sehingga bahkan jika suatu variabel tidak penting untuk prediksi akhir dalam model. , itu mungkin sangat membentuk bentuk model itu sendiri. Mengingat bahwa generasi model itu sendiri sering stokastik (dioptimalkan menggunakan optimasi partikel swarm atau metode mengantongi dll), sulit untuk memahami persis bagaimana variabel yang diberikan dapat membentuk bentuknya.

  2. Kesulitan mengekstraksi pentingnya suatu variabel tunggal mengingat bahwa itu mungkin hanya penting dalam hubungannya atau interaksi dengan variabel lain.

  3. Beberapa variabel mungkin hanya penting untuk beberapa pengamatan. Kurangnya penting pada pengamatan lain dapat mengacaukan pengukuran kepentingan secara keseluruhan dengan rata-rata perbedaan nyata.

Juga sulit untuk mendapatkan metrik langsung yang dapat ditafsirkan untuk kepentingan variabel tepat seperti yang didefinisikan oleh model, karena mungkin tidak menghasilkan angka tunggal (terutama dalam kasus pengemasan). Sebaliknya, dalam kasus ini ada distribusi kepentingan untuk setiap variabel.

Salah satu cara untuk mengatasi masalah ini mungkin dengan menggunakan gangguan. Ini adalah cara untuk menganalisis model akhir Anda dengan menambahkan noise acak ke variabel Anda, dan kemudian memeriksa bagaimana ini mempengaruhi hasil. Keuntungannya adalah memungkinkan Anda menemukan variabel mana yang paling penting secara empiris melalui simulasi - menjawab pertanyaan variabel mana yang paling menghancurkan prediksi jika dihapus. Kerugiannya, adalah bahwa ada peluang bagus bahwa bahkan jika variabel dihapus / terganggu, model (jika dilatih ulang) dapat menggunakan variabel lain merekonstruksi efeknya, yang berarti bahwa "variabel kepentingan" mengukur Anda memperoleh masih hanya benar-benar menunjukkan pentingnya model yang Anda latih, tetapi bukan kepentingan keseluruhan di semua model yang mungkin.

analis
sumber
3

Seperti yang disebutkan oleh @Bitwise, pemilihan fitur atau ekstraksi fitur adalah bidang penelitian yang sangat besar dan ada banyak cara untuk melakukannya.

Jawaban lain semuanya sah menurut pendapat saya, tetapi pada akhirnya, Anda mungkin akan melakukan yang paling disukai, dan memilih metode yang paling intuitif untuk Anda dan Anda memahami yang terbaik. Saya masih akan menambahkan dua opsi yang memungkinkan.

Regresi berganda mungkin merupakan teknik tertua. Idenya adalah untuk mencocokkan model untuk menggambarkan respons dari prediktor dan hanya menyimpan prediktor yang memiliki dampak besar pada respons (koefisien proporsionalitas yang besar). Di sini Anda mungkin harus recode tidak adanya D, E, F dan G sebagai D=0, E=0, F=0, G =0atau sesuatu seperti itu.

Teknik lain yang tidak pernah mendapatkan popularitas yang layak adalah analisis co-inersia (varian analisis kanonik ). Tidak ada implementasi, sejauh yang saya tahu, dan Anda harus mulai dari awal (di sana misalnya). Ini adalah metode linier yang menemukan kombinasi linear fitur terbaik yang cocok dengan hasil Anda. Posting blog ini menunjukkan contoh cara penggunaannya.

gui11aume
sumber
2

Saya menggunakan Penguatan Informasi (juga dikenal sebagai Informasi Mutual). Penasihat saya dan saya secara teratur menggunakan pendekatan yang dijelaskan dalam makalah ini Cohen, 2008 untuk menganalisis fitur untuk klasifikasi oleh SVM.

Kyle.
sumber
2

Hutan Acak bisa sangat berguna untuk apa yang ingin Anda lakukan. Paket randomForest untuk R memiliki fungsi yang menghitung 2 ukuran kepentingan. Ini juga memiliki kemampuan untuk membuat beberapa plot ketergantungan parsial sehingga Anda dapat secara visual memeriksa efek marginal yang mungkin dimiliki oleh sang prediktor pada respons.

dcl
sumber
1

Aku jahat di sini tetapi karena suatu alasan. Pernahkah Anda berpikir untuk mengganti pengamatan yang tidak seragam dengan variabel indikator present | not_present? Dari uraian Anda, sepertinya nilai indikator ini adalah fitur yang valid karena keberadaan faktor D hingga H tidak informatif: yaitu keberadaannya hanya menunjukkan hasil yang lebih besar.

jcb
sumber