Scikit-learn: Algoritma Pembelajaran Asosiatif

Dibuat pada 13 Des 2013  ·  32Komentar  ·  Sumber: scikit-learn/scikit-learn

Saya perhatikan bahwa tidak ada Algoritma Pembelajaran Asosiatif seperti:

Alogoritma Apiori
Algoritma Klasifikasi Ekuivalensi (Eclat)
AwalanSpan
FP-Pertumbuhan

Semuanya digunakan untuk mendeteksi kombinasi pola dalam kumpulan data.

Beberapa dari mereka agak sulit untuk diterapkan, saya akan mengatakan sekitar 200 baris kode?

New Feature

Komentar yang paling membantu

Hai,

Saya memiliki pengetahuan tentang algoritma pertumbuhan Apriori dan FP. Saya ingin bekerja pada masalah ini. Apakah ada orang lain yang sudah mengerjakannya, dan jika demikian saya juga ingin membantu.

Semua 32 komentar

Saya tidak yakin penambangan set item berada dalam lingkup sklearn. Saya hanya tahu algoritma apriori tetapi saya tahu ada yang lebih canggih. Saya kira orang bisa memasukkannya ke dalam API menggunakan matriks indikator yang jarang tetapi entah bagaimana mereka tampak sangat terpisah dari sklearn lainnya.

Mereka dapat digunakan sebagai pendahulu untuk algoritma CBA, algoritma pohon keputusan untuk data kategorikal

Tidak ada pohon keputusan (atau algoritma lainnya) untuk data kategorikal tanpa transformasi satu-panas di sklearn.

Saya pikir penambangan item yang sering harus dianggap OT. Tidak ada pengembang inti yang bekerja di area itu, jadi setiap kode yang dikirimkan kemungkinan akan menjadi yatim piatu. Kami telah mencoba untuk mengurangi ruang lingkup perpustakaan karena alasan ini.

Saya pikir penambangan item yang sering harus dianggap OT. Tidak ada inti
pengembang bekerja di area itu, jadi setiap kode yang dikirimkan kemungkinan akan menjadi
yatim piatu.

Juga, saya percaya bahwa jenis pola kode akan sangat berbeda
lalu apa yang kita miliki saat ini.

Tidak mengatakan bahwa itu tidak menarik, hanya mengatakan bahwa alat itu seharusnya a
yang berbeda.

Hai,

Saya memiliki pengetahuan tentang algoritma pertumbuhan Apriori dan FP. Saya ingin bekerja pada masalah ini. Apakah ada orang lain yang sudah mengerjakannya, dan jika demikian saya juga ingin membantu.

Menutup masalah ini. Saya pikir pembelajaran asosiasi harus dibuat prototipe dalam paket terpisah; jika ternyata kode dan interfacenya cukup mirip dengan kita, kita bisa mempertimbangkan untuk menggabungkan kode menjadi scikit-learn.

Keputusan yang menyedihkan!

Menutup masalah ini. Saya pikir pembelajaran asosiasi harus dibuat prototipe dalam paket terpisah; jika ternyata kode dan interfacenya cukup mirip dengan kita, kita bisa mempertimbangkan untuk menggabungkan kode menjadi scikit-learn.

Keputusan yang sangat masuk akal :)

:+1: untuk fokus
:-1: untuk mengecualikan seluruh kelas algoritma pembelajaran tanpa pengawasan yang terkenal

@joernhees dapatkah Anda menjelaskan bagaimana formulasi pembelajaran tanpa pengawasan ini bahkan cocok dengan scikit-learn API? Jika tidak mudah, maka itu mungkin termasuk dalam lingkup proyek berbeda yang dapat membuat API sendiri. Saya pikir @larsmans membuatnya cukup jelas di atas, dan itu tidak pantas mendapat tanggapan sinis.

maaf jika ini dianggap sinis, itu bukan niat saya.

Saya awalnya tiba di sini mencari algoritma pembelajaran aturan asosiasi dan hanya berharap menemukannya di sklearn (karena ini adalah kumpulan algoritma pembelajaran mesin yang cukup mengagumkan dan biasanya saya menemukan sebagian besar hal yang saya butuhkan di dalamnya (terima kasih banyak untuk itu)).

Setelah membaca utas ini saya merasa: senang dan kecewa, dan ingin menyuarakan keduanya:

  • Senang melihat Anda membuat keputusan rekayasa perangkat lunak yang baik untuk fokus (yang sulit).
  • Kecewa karena penambangan aturan asosiasi bukan bagian darinya dan ada orang lain di luar sana yang melewatkannya. Seperti yang saya katakan itu dapat dilihat sebagai kelas sendiri dari algoritma pembelajaran tanpa pengawasan dan itu cukup berhasil (amazon). Mungkin ini terlalu banyak penambangan data dan sedikit pembelajaran mesin untuk sklearn, tetapi cukup putar sedikit dan Anda mendapatkan pembelajaran aturan yang cukup berguna untuk prediksi yang dapat dijelaskan tentang tindakan selanjutnya yang mungkin diambil oleh seorang aktor misalnya.

Anda benar bahwa penambangan aturan asosiasi tidak sepenuhnya sesuai dengan API saat ini. Secara konseptual saya melihatnya di suatu tempat di antara teknik pengurangan dimensi dan pengelompokan hierarkis. Dari segi API, ini mungkin paling dekat dengan pengelompokan hierarkis.

Karena dua baris mungkin terlalu pendek untuk diungkapkan dengan cara yang ramah, terimalah permintaan maaf saya.

tidak masalah. Pasti ada implementasi Python dari apriori.
Membangun perpustakaan yang baik yang mengumpulkan alternatif bersama, dan memberi mereka
API yang konsisten (seperti scikit-learn) sepertinya proyek yang bagus... Saya pikir
pengklasifikasi berdasarkan penambangan aturan asosiasi mungkin dalam cakupan untuk
scikit-learn, tetapi kecuali mereka cukup populer dan terstandarisasi
sudah, itu berisiko menjadi kode tanpa pengelola.

Pada 24 September 2014 07:52, Jörn Hees [email protected] menulis:

maaf jika ini dianggap sinis, itu bukan niat saya.

Saya awalnya tiba di sini mencari pembelajaran aturan asosiasi
algoritma dan hanya diharapkan untuk menemukannya di sklearn (karena itu cantik
kumpulan algoritme pembelajaran mesin yang luar biasa dan biasanya saya temukan paling banyak
hal-hal yang saya butuhkan di dalamnya (terima kasih banyak untuk itu)).

Setelah membaca utas ini saya merasa: senang dan kecewa, dan ingin
menyuarakan keduanya:

  • Senang melihat Anda membuat keputusan rekayasa perangkat lunak yang baik
    untuk fokus (yang sulit).
  • Kecewa karena penambangan aturan asosiasi bukan bagian darinya dan
    ada orang lain di luar sana yang merindukannya. Seperti yang saya katakan itu dapat dilihat sebagai
    kelas sendiri dari algoritma pembelajaran tanpa pengawasan dan itu cukup berhasil
    (amazon). Mungkin terlalu banyak penambangan data dan sedikit terlalu sedikit
    pembelajaran mesin untuk sklearn, tetapi cukup putar sedikit dan Anda mendapatkan aturan
    pembelajaran yang cukup berguna untuk prediksi yang dapat dijelaskan selanjutnya
    tindakan yang mungkin diambil oleh seorang aktor misalnya.

Anda benar bahwa penambangan aturan asosiasi tidak sepenuhnya sesuai dengan
API saat ini. Secara konseptual saya melihatnya di suatu tempat di antara dimensi
teknik reduksi dan pengelompokan hierarkis. API bijaksana itu mungkin
paling dekat dengan pengelompokan hierarkis.

Karena dua baris mungkin terlalu pendek untuk diungkapkan dengan cara yang bersahabat,
tolong terima permintaan maaf saya.


Balas email ini secara langsung atau lihat di GitHub
https://github.com/scikit-learn/scikit-learn/issues/2662#issuecomment -56595906
.

Saya pikir ini akan bermanfaat, artikel ini: Membandingkan Aturan Asosiasi dan Pohon Keputusanuntuk Prediksi Penyakit menunjukkan keuntungan yang jelas dibandingkan dengan pohon keputusan.

Posting blog ini menyertakan kode Python untuk A-Priori, mungkin menarik untuk mencoba mengimplementasikan algoritma ini kapan-kapan. Apakah ada pekerjaan pada paket prototyping terpisah?

Tidak ada sejauh ini. Mungkin Anda bisa mencoba mengumpulkan dukungan untuk ini di milis?

Saya, misalnya, kecewa karena algoritma ini tidak diimplementasikan di sklearn. Penasihat saya adalah Jiawei Han, penulis FP-growth dan PrefixSpan, dan jumlah kutipan untuk kedua makalah tersebut ("Menambang pola yang sering tanpa pembuatan kandidat" dan "Menambang pola berurutan dengan pertumbuhan pola") adalah bukti bahwa keduanya algoritma tersebut memiliki tempat di sklearn.

Hanya karena scikit-learn memiliki kriteria popularitas untuk disertakan
algoritma, itu tidak berarti setiap algoritma populer harus disertakan.
Scikit-learn perlu memiliki ruang lingkup terbatas, dan ini terlalu jauh dari
klasifikasi dan masalah seperti regresi (walaupun saya tertarik untuk
lihat pengklasifikasi berbasis asosiasi yang berhasil diimplementasikan).

Jangan ragu untuk kecewa, tetapi saya sangat ragu bahwa teknik ARL akan
langsung dimasukkan dalam scikit-belajar di masa mendatang (walaupun
proyek lain mungkin memberi mereka API seperti scikit-belajar). Ada
proyek lain di mana algoritme ini lebih sesuai, tetapi jika Anda
kecewa dengan mereka juga, buat sendiri.

Pada 25 Maret 2015 pukul 09:11, Henry [email protected] menulis:

Saya, misalnya, kecewa karena algoritme ini tidak diterapkan di
sklearn. Penasihat saya adalah Jiawei Han, penulis FP-growth dan PrefixSpan,
dan jumlah kutipan untuk kedua makalah tersebut (
"Menambang pola yang sering tanpa generasi kandidat" dan "Menambang
pola berurutan dengan pertumbuhan pola") adalah bukti bahwa keduanya
algoritma memiliki tempat di sklearn.


Balas email ini secara langsung atau lihat di GitHub
https://github.com/scikit-learn/scikit-learn/issues/2662#issuecomment -85713120
.

Algoritma pembelajaran asosiasi terlalu jauh dari masalah klasifikasi dan regresi. Meskipun kita dapat mempertimbangkan Frequent Itemset/algoritma penambangan pola sebagai algoritme pembuatan fitur seperti countvectorizer dan tfidfvectorizer. Pola yang sering digunakan tersebut dapat digunakan dalam algoritma pengklasifikasi apa pun sebagai fitur input, dan akan jauh lebih intuitif dan agak berbeda daripada menerapkan pembelajaran pohon keputusan berbasis perolehan informasi.

Itu pilihan. Kudo dan Matsumoto menunjukkan cara mengambil sampel subset dari polikernel dengan PrefixSpan.

Saya dapat mencari dan memeriksa dokumentasi scikit-learn, tetapi saya akan bertanya langsung kepada Anda, Apakah opsi ini (Kudo dan Matsumoto) tersedia di scikit-learn.

Tidak. Aku hanya mengatakan itu bisa saja.

+1 untuk Alogoritma Apiori

Perhatikan bahwa ada algoritme ML yang bergantung pada daftar item yang sering digunakan sebagai input. Misalnya, lihat Daftar Aturan Bayesian Cynthia Rudin (lih, http://www.stat.washington.edu/research/reports/2012/tr609%20-%20old.pdf).

Pertimbangkan kumpulan data dengan variabel respons yang akan diprediksi yang semua fiturnya adalah indikator biner (mungkin sebagai hasil dari one-hot-encoding). Kita dapat menganggap baris set pelatihan sebagai 'keranjang' dan kehadiran fitur untuk baris set pelatihan itu menjadi 'item' di dalam keranjang. Dengan demikian, kumpulan data yang cukup umum dapat dioperasikan oleh apriori, FP-growth, dan teknik penambangan itemset lainnya.

Dalam algoritma Bayesian Rule List, frequent itemset dievaluasi dan akhirnya struktur if-then-else dibuat darinya. Lihat kertas referensi untuk lebih jelasnya.

Intinya adalah bahwa memiliki pendekatan penambangan itemset yang sering tersedia dapat mendukung pengklasifikasi dan regresor --- sudah dalam lingkup sklearn --- bukan hanya analisis keranjang pasar.

Itulah motivasi agar algoritme semacam itu tersedia di scipy, mungkin. Dari
tentu saja, jika pengklasifikasi atau sejenisnya yang memenuhi inklusi scikit-learn
pedoman diimplementasikan dengan penambangan itemset, ada peluang bagus untuk
inklusi, apriori dan semuanya.

Pada 19 April 2016 pukul 01:14, [email protected] menulis:

Perhatikan bahwa ada algoritme ML yang bergantung pada daftar item yang sering digunakan sebagai
memasukkan. Misalnya, lihat Daftar Aturan Bayesian Cynthia Rudin (lih.
http://www.stat.washington.edu/research/reports/2012/tr609%20-%20old.pdf).

Pertimbangkan kumpulan data dengan variabel respons yang akan diprediksi yang semuanya
fitur-fiturnya adalah indikator biner (mungkin sebagai akibat dari
pengkodean satu-panas). Kita dapat menganggap baris set pelatihan sebagai 'keranjang' dan
kehadiran fitur untuk baris set pelatihan itu menjadi 'item' di dalam
Keranjang. Dengan demikian, kumpulan data yang cukup umum dapat dioperasikan oleh:
apriori, FP-growth, dan teknik penambangan frequent itemset lainnya.

Dalam algoritma Bayesian Rule List, frequent itemsets dievaluasi
dan akhirnya struktur if-then-else dibuat dari mereka. Lihat
referensi kertas untuk lebih jelasnya.

Intinya adalah memiliki pendekatan penambangan itemset yang sering tersedia
dapat mendukung pengklasifikasi dan regresi --- sudah dalam lingkup
sklearn --- bukan hanya analisis keranjang pasar.


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung atau lihat di GitHub
https://github.com/scikit-learn/scikit-learn/issues/2662#issuecomment-211424583

Saya tidak tahu seberapa banyak sklearn telah berubah sejak percakapan ini dimulai, tetapi ada seluruh paket "cluster" yang juga bukan regresi/klasifikasi. Saya pikir implementasi yang baik dari algoritme terbaru untuk aturan asosiasi dan kumpulan item yang sering akan diterima oleh banyak orang di sklearn.

Clustering sangat mirip dengan klasifikasi, tetapi tidak diawasi, dan telah lama menjadi bagian dari scikit-learn. Penambangan aturan asosiasi tetap berada di luar tugas utama yang menjadi fokus scikit-learn, dan tidak sesuai dengan API-nya, tetapi mungkin relevan dalam konteks pengklasifikasi berbasis asosiasi.

"algoritma terbaru" bukanlah tentang scikit-learn. Lihat FAQ kami.

Akan menyenangkan untuk tidak mengulangi diri saya sendiri.

@actsasgeek jika Anda ingin menerapkan penambangan aturan asosiasi dengan cara yang kompatibel dengan scikit-learn, kami akan dengan senang hati memasukkannya ke dalam scikit-learn-contrib: https://github.com/scikit-learn-contrib/scikit-learn -contrib/blob/master/README.md

Saya harap pertanyaan berulang saya tidak mengganggu Anda, karena saya melihat perasaan berlawanan dengan menambahkan penambangan aturan asosiasi di lib yang hebat seperti scikit learn. Saya hanya ingin mendapatkan pembaruan apakah ada set item yang sering diterapkan di scikit learn setelah tiga tahun pembuatan utas ini?.

Penambangan aturan asosiasi berada di luar cakupan pembelajaran mesin, dan
tentu saja di luar lingkup scikit-learn.

Klasifikasi berdasarkan aturan asosiasi adalah satu-satunya konteks di mana kita
akan mempertimbangkannya, dan kemudian masih perlu penjualan yang sulit.

Pada 17 Agustus 2017 pukul 15:59, saria85 [email protected] menulis:

Saya harap pertanyaan berulang saya tidak mengganggu Anda, karena saya melihat perasaan
berlawanan dengan menambahkan penambangan aturan asosiasi dalam lib yang hebat seperti
scikit belajar. Saya hanya ingin mendapatkan pembaruan apakah ada set item yang sering?
diimplementasikan di scikit learn setelah tiga tahun pembuatan ini
benang?.


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub
https://github.com/scikit-learn/scikit-learn/issues/2662#issuecomment-322976532 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AAEz67fCICLgV-3OpYiV3ErpJSW0mobgks5sY9a4gaJpZM4BT5PS
.

Bagi yang berminat,

Pustaka bernama mlxtend mengimplementasikan algoritme apriori:
http://rasbt.github.io/mlxtend/api_subpackages/mlxtend. frequent_patterns/

ya semua orang membutuhkannya, jadi akan sangat bagus jika ada di scikit-learn.
satu lagi tautan untuk menggunakannya di ML
http://www2.cs.uh.edu/~ordonez/pdfwww/w-2006-HIKM-ardtmed.pdf
Membandingkan Aturan Asosiasi dan Pohon Keputusan
untuk Prediksi Penyakit

Itu adalah penambangan pola bukan ML

Apakah halaman ini membantu?
0 / 5 - 0 peringkat