Algoritma untuk menghasilkan aturan klasifikasi

11

Jadi kami memiliki potensi untuk aplikasi pembelajaran mesin yang cocok dengan cukup rapi ke dalam domain masalah tradisional yang diselesaikan oleh pengklasifikasi, yaitu, kami memiliki seperangkat atribut yang menggambarkan item dan "ember" yang akhirnya dimasukkan. Namun, daripada membuat model probabilitas seperti di Naif Bayes atau pengklasifikasi serupa, kami ingin output kami menjadi seperangkat aturan yang dapat dibaca oleh manusia yang dapat ditinjau dan dimodifikasi oleh pengguna akhir.

Pembelajaran aturan asosiasi terlihat seperti kumpulan algoritme yang memecahkan masalah jenis ini, tetapi algoritme ini tampaknya berfokus pada pengidentifikasian kombinasi fitur yang umum dan tidak menyertakan konsep bucket akhir yang mungkin ditunjukkan oleh fitur-fitur tersebut. Misalnya, kumpulan data kami terlihat seperti ini:

Item A { 4-door, small, steel } => { sedan }
Item B { 2-door, big,   steel } => { truck }
Item C { 2-door, small, steel } => { coupe }

Saya hanya ingin aturan yang mengatakan "jika besar dan 2 pintu, itu truk," bukan aturan yang mengatakan "jika itu 4 pintu juga kecil."

Salah satu solusi yang dapat saya pikirkan adalah dengan hanya menggunakan algoritma pembelajaran aturan asosiasi dan mengabaikan aturan yang tidak melibatkan end bucket, tapi itu agak sedikit membingungkan. Apakah saya melewatkan beberapa keluarga algoritma di luar sana? Atau mungkin saya mendekati masalah dengan salah untuk memulainya?

super_seabass
sumber

Jawaban:

9

C45 buatan Quinlan mampu menghasilkan aturan untuk prediksi. Periksa halaman Wikipedia ini . Saya tahu bahwa di Weka namanya adalah J48. Saya tidak tahu yang mana implementasi dalam R atau Python. Bagaimanapun, dari jenis pohon keputusan ini Anda harus dapat menyimpulkan aturan untuk prediksi.

Kemudian edit

Anda juga mungkin tertarik pada algoritma untuk langsung menyimpulkan aturan untuk klasifikasi. RIPPER adalah satu, yang lagi-lagi di Weka menerima nama lain JRip. Lihat kertas asli untuk RIPPER: Induksi Cepat Efektif, WW Cohen 1995

rapaio
sumber
Saya telah bereksperimen dengan C45 / J48 dalam proyek sebelumnya. Saya tidak menyadari ada aturan yang bisa saya ambil darinya. Saya juga akan memeriksa RIPPER. Terima kasih!
super_seabass
Periksa juga paket C50 dalam R.
nfmcclure
Ingin memberikan pembaruan untuk pertanyaan / jawaban ini: kami telah menggunakan JRip dengan beberapa keberhasilan, tetapi pesaing utama kami yang baru adalah FURIA ( cs.uni-paderborn.de/fileadmin/Informatik/eim-i-is/PDFs/… ). Ini menghasilkan aturan terbaik untuk tinjauan / penggunaan manusia karena mencoba menghasilkan aturan yang lengkap. JRip membuat aturan yang bagus, tetapi memiliki aturan "default" untuk klasifikasi ketika tidak ada aturan lain yang berlaku. Bucket default tidak berfungsi dengan baik dalam konteks bisnis proyek kami, kami membutuhkan aturan lengkap.
super_seabass
7

Ini sebenarnya lebih sederhana dari itu, dari apa yang Anda gambarkan --- Anda hanya mencari algoritma pohon klasifikasi dasar (jadi tidak perlu untuk varian yang sedikit lebih kompleks seperti C4.5 yang dioptimalkan untuk akurasi prediksi). Teks kanonik adalah:

http://www.amazon.com/Classification-Regression-Wadsworth-Statistics-Probability/dp/0412048418

Ini mudah diterapkan di R:

http://cran.r-project.org/web/packages/tree/tree.pdf

dan Python:

http://scikit-learn.org/stable/modules/tree.html

Therriault
sumber
Saya tidak setuju pohon bisa membantu di sini. Ini adalah masalah aturan penyaringan, dan itu dapat dicapai dengan paket arules di R.
adesantos
1

Anda harus mencoba paket arules di R. Ini memungkinkan Anda untuk membuat tidak hanya aturan asosiasi tetapi juga untuk menentukan panjang setiap aturan, pentingnya setiap aturan dan juga Anda dapat memfilternya, yang merupakan apa yang Anda cari (coba rhs () perintah dari paket ini).

adesantos
sumber