Sebagai bahasa pengaturcaraan yang berkuasa, Python boleh digunakan dalam pelbagai bidang, termasuk perlombongan data dan pembelajaran mesin. Dalam bidang perlombongan data, perlombongan peraturan persatuan ialah teknik yang biasa digunakan yang boleh digunakan untuk menemui perhubungan antara item yang berbeza dalam set data dan kesan perhubungan ini pada perkara lain. Artikel ini akan memperkenalkan secara ringkas teknik perlombongan peraturan persatuan dalam Python.
Algoritma Apriori ialah algoritma klasik dalam bidang perlombongan peraturan persatuan, yang boleh digunakan untuk menemui set item kerap dan peraturan persatuan dalam set data. Set item kerap merujuk kepada set item yang muncul lebih kerap dalam set data, manakala peraturan perkaitan merujuk kepada hubungan antara dua atau lebih item mungkin muncul pada masa yang sama, atau kejadian satu bermakna yang lain juga berkemungkinan untuk muncul.
Anda boleh menggunakan fungsi apriori dalam perpustakaan mlxtend untuk melaksanakan algoritma Apriori dalam Python. Berikut ialah kod sampel ringkas:
from mlxtend.frequent_patterns import apriori # 构建数据集 data = [['牛奶', '面包', '啤酒'], ['奶酪', '面包', '黄油'], ['牛奶', '面包', '黄油', '鸡蛋'], ['奶酪', '黄油', '鸡蛋'], ['面包', '啤酒']] # 使用apriori算法挖掘频繁项集 frequent_itemsets = apriori(data, min_support=0.6) # 输出频繁项集 print(frequent_itemsets)
Dalam kod di atas, kami mula-mula menentukan set data yang mengandungi kandungan lima bakul beli-belah. Kemudian gunakan fungsi apriori dalam perpustakaan mlxtend untuk melombong itemset yang kerap. Parameter pertama fungsi ialah set data, dan parameter kedua ialah ambang sokongan minimum, yang ditetapkan kepada 0.6 di sini.
Dalam output, kita dapat melihat bahawa algoritma menemui dua set item yang kerap: ['roti'] dan ['susu', 'roti']. Ini bermakna dalam set data ini, bilangan terbesar orang membeli roti, diikuti dengan susu dan roti. Kita boleh menemui set item kerap dengan saiz yang berbeza dengan melaraskan ambang sokongan.
Selepas menemui set item yang kerap, kami boleh terus mengekstrak peraturan persatuan. Peraturan persatuan boleh membantu kami memahami kebarangkalian bahawa item tertentu akan muncul bersama-sama, atau kebarangkalian bahawa satu item akan muncul apabila item lain muncul.
Anda boleh menggunakan fungsi association_rules dalam perpustakaan mlxtend untuk mengekstrak peraturan persatuan dalam Python. Berikut ialah kod sampel mudah:
from mlxtend.frequent_patterns import association_rules, apriori data = [['牛奶', '面包', '啤酒'], ['奶酪', '面包', '黄油'], ['牛奶', '面包', '黄油', '鸡蛋'], ['奶酪', '黄油', '鸡蛋'], ['面包', '啤酒']] # 使用apriori算法挖掘频繁项集 frequent_itemsets = apriori(data, min_support=0.6) # 使用association_rules函数提取关联规则 rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.8) # 输出关联规则 print(rules)
Dalam kod di atas, kami mula-mula menggunakan algoritma Apriori untuk mencari set item yang kerap dalam set data. Kemudian gunakan fungsi association_rules untuk mengekstrak peraturan persatuan. Parameter pertama fungsi ialah set item yang kerap, parameter kedua ialah penunjuk untuk menilai peraturan persatuan, di sini pilih keyakinan (keyakinan), dan parameter ketiga ialah ambang keyakinan minimum, di sini ditetapkan kepada 0.8.
Dalam output, kita dapat melihat bahawa algoritma menemui peraturan perkaitan dengan tahap keyakinan 1.0: 'bread' => 'beer'. Ini bermakna 100% orang yang membeli roti juga membeli bir. Peraturan perkaitan ini boleh digunakan untuk mengesyorkan produk kepada pengguna dalam sistem pengesyoran.
Algoritma FP-Growth ialah satu lagi algoritma klasik dalam bidang perlombongan peraturan persatuan Ia lebih pantas daripada algoritma Apriori dan boleh mengendalikan besar-. skala set data.
Pustaka pyfpgrowth boleh digunakan dalam Python untuk melaksanakan algoritma FP-Growth. Berikut ialah kod sampel mudah:
import pyfpgrowth # 构建数据集 data = [['牛奶', '面包', '啤酒'], ['奶酪', '面包', '黄油'], ['牛奶', '面包', '黄油', '鸡蛋'], ['奶酪', '黄油', '鸡蛋'], ['面包', '啤酒']] # 使用FP-Growth算法挖掘频繁项集 patterns = pyfpgrowth.find_frequent_patterns(data, 2) # 使用FP-Growth算法提取关联规则 rules = pyfpgrowth.generate_association_rules(patterns, 0.8) # 输出频繁项集和关联规则 print(patterns) print(rules)
Dalam kod di atas, kami mula-mula mentakrifkan set data, dan kemudian menggunakan fungsi find_frequent_patterns dalam pustaka pyfpgrowth untuk melombong set item yang kerap. Parameter pertama fungsi ialah set data, dan parameter kedua ialah ambang sokongan. Di sini, kami menetapkan ambang sokongan kepada 2, yang bermaksud bahawa setiap set item mesti muncul dalam sekurang-kurangnya dua bakul beli-belah. Fungsi ini akan mengembalikan kamus yang mengandungi semua set item kerap dan kiraan sokongannya.
Kemudian gunakan fungsi generate_association_rules dalam pustaka pyfpgrowth untuk mengekstrak peraturan persatuan. Parameter pertama fungsi ialah kamus set item yang kerap, dan parameter kedua ialah ambang keyakinan. Di sini, kami menetapkan ambang keyakinan kepada 0.8.
Dalam output, kita dapat melihat bahawa algoritma menemui dua set item yang kerap: ('roti',) dan ('roti', 'susu'). Pada masa yang sama, algoritma mengekstrak peraturan perkaitan dengan tahap keyakinan 1.0: ('roti',) => ('bir',). Ini bermakna 100% orang yang membeli roti akan membeli bir. Di samping itu, anda juga boleh melihat peraturan persatuan lain dengan tahap keyakinan lebih tinggi daripada 0.8.
Ringkasan
Perlombongan peraturan persatuan ialah teknik perlombongan data yang sangat berguna yang boleh digunakan untuk menemui perhubungan antara item yang berbeza dalam set data dan kesan perhubungan ini pada perkara lain. Python menyediakan pelbagai kaedah untuk melaksanakan perlombongan peraturan persatuan, termasuk algoritma Apriori dan algoritma FP-Growth. Dalam pelaksanaan khusus, anda juga perlu memberi perhatian kepada tetapan ambang set item kerap dan peraturan perkaitan, dan cara menggunakannya untuk masalah sebenar.
Atas ialah kandungan terperinci Teknik perlombongan peraturan persatuan dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!