Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penjelasan terperinci algoritma Apriori dalam Python

Penjelasan terperinci algoritma Apriori dalam Python

PHPz
PHPzasal
2023-06-10 08:03:134754semak imbas

Algoritma Apriori ialah kaedah biasa untuk perlombongan peraturan persatuan dalam bidang perlombongan data, dan digunakan secara meluas dalam risikan perniagaan, pemasaran dan bidang lain. Sebagai bahasa pengaturcaraan umum, Python juga menyediakan berbilang perpustakaan pihak ketiga untuk melaksanakan algoritma Apriori Artikel ini akan memperkenalkan secara terperinci prinsip, pelaksanaan dan aplikasi algoritma Apriori dalam Python.

1. Prinsip algoritma Apriori

Sebelum memperkenalkan prinsip algoritma Apriori, mari kita pelajari dua konsep dalam perlombongan peraturan persatuan: set item kerap dan sokongan.

Set item kerap: merujuk kepada set item yang sering muncul bersama dalam set data tertentu.

Sokongan: Kekerapan set item yang muncul dalam semua transaksi dipanggil sokongan.

Sebagai contoh, dalam data transaksi pasar raya, kekerapan gabungan {susu, kek} dalam semua transaksi ialah 10%. Kemudian, sokongan untuk gabungan ini ialah 10%.

Algoritma Apriori adalah berdasarkan konsep set item kerap dan meneroka korelasi antara item dengan mencari set item kerap lapisan demi lapisan. Ideanya adalah seperti berikut:

  1. Melombong set item kerap dari bawah ke atas, bermula dari set item tunggal (iaitu, item yang dibeli secara individu).
  2. Hanya apabila sokongan set item memenuhi ambang sokongan minimum pratetap, ia boleh dianggap sebagai set item kerap.
  3. Bina set peraturan perkaitan yang kukuh berdasarkan set item yang kerap. Peraturan perkaitan yang kukuh merujuk kepada peraturan yang perkaitan antara item syarat dan item hasil dalam peraturan perkaitan adalah sangat rapat.

Secara khusus, proses pelaksanaan algoritma Apriori adalah seperti berikut:

  1. Kira semua item dan dapatkan kiraan sokongan bagi set item tunggal.
  2. Untuk setiap set item tunggal yang sokongannya memenuhi ambang sokongan minimum, set item tersebut boleh dianggap sebagai set item kerap.
  3. Untuk setiap set item yang kerap, jana semua subset bukan kosongnya dan hitung sokongan setiap subset dengan mengira semasa proses penjanaan.
  4. Jika sokongan subset yang dijana pada masa ini memenuhi ambang sokongan minimum, subset disimpan sebagai set item kerap.
  5. Bina set peraturan perkaitan yang kukuh berdasarkan set item yang kerap. Untuk set item yang kerap, anda boleh memilih subset sebagai syarat, dan bahagian yang tinggal sebagai hasilnya, dan mengira keyakinannya. Jika keyakinan memenuhi ambang keyakinan minimum, peraturan perkaitan disimpan sebagai peraturan yang kukuh.
  6. Lakukan langkah 3 hingga 5 secara berulang sehingga tiada set item kerap baharu atau peraturan kukuh.

Perlu diambil perhatian bahawa kerumitan masa algoritma Apriori adalah sangat tinggi kerana ia memerlukan pengiraan sokongan untuk setiap subset bukan kosong. Untuk mengurangkan jumlah pengiraan, beberapa teknik pengoptimuman boleh digunakan, seperti penggunaan jadual cincang dan pengurangan calon.

2. Python melaksanakan algoritma Apriori

Terdapat berbilang perpustakaan pihak ketiga dalam Python yang boleh melaksanakan algoritma Apriori, seperti mlxtend, Orange, dsb. Berikut menggunakan mlxtend sebagai contoh untuk memperkenalkan langkah pelaksanaan algoritma Apriori.

  1. Pasang perpustakaan mlxtend

Pasang mlxtend menggunakan pip:

pip install mlxtend
  1. Import perpustakaan yang diperlukan

Import perpustakaan numpy dan perpustakaan mlxtend:

import numpy as np
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori, association_rules
  1. Sediakan data

Jana set data transaksi mudah, mengandungi 4 rekod transaksi, setiap rekod terdiri daripada beberapa item Komposisi:

dataset = [['牛奶', '面包', '啤酒', '尿布'],
           ['牛奶', '面包', '啤酒', '尿布'],
           ['面包', '啤酒', '尿布', '饼干'],
           ['牛奶', '尿布', '啤酒', '饼干']]
  1. Tukar data kepada jadual Boolean

Gunakan TransactionEncoder untuk menukar data kepada jadual Boolean Langkah ini adalah untuk mengekstrak set item kerap daripada set data transaksi:

te = TransactionEncoder()
te_ary = te.fit(dataset).transform(dataset)
df = pd.DataFrame(te_ary, columns=te.columns_)
  1. Melombong set item kerap

Gunakan fungsi Apriori untuk melombong set item kerap dari jadual Boolean:

frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)

Dengan menetapkan parameter min_support, anda boleh mengawal kekerapan Sokongan minimum set item. Dalam kod di atas, sokongan minimum ditetapkan kepada 0.5.

  1. Bina set peraturan persatuan yang kukuh

Berdasarkan set item yang kerap, gunakan fungsi association_rules untuk membina set peraturan persatuan yang kukuh:

rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.7)

Oleh menetapkan parameter metrik, anda boleh Kawal metrik yang digunakan untuk menilai kebaikan peraturan persatuan. Dalam kod di atas, keyakinan digunakan sebagai metrik penilaian dan ambang keyakinan minimum ditetapkan kepada 0.7.

3. Senario aplikasi algoritma Apriori

Algoritma Apriori boleh digunakan dalam banyak bidang, seperti pemasaran, sistem pengesyoran, analisis rangkaian sosial, dsb. Berikut mengambil platform e-dagang sebagai contoh untuk menunjukkan aplikasi algoritma Apriori dalam pengesyoran produk.

Platform e-dagang biasanya merekodkan rekod transaksi pengguna dan menggunakan rekod ini untuk mengesyorkan produk yang pengguna mungkin berminat. Melalui algoritma Apriori, kombinasi produk frekuensi tinggi boleh dilombong Contohnya, orang yang membeli produk A, B dan C mempunyai kebarangkalian yang tinggi untuk membeli produk D. Berdasarkan peraturan persatuan ini, platform e-dagang boleh mengesyorkan produk yang sepadan kepada pengguna untuk meningkatkan kadar transaksi dan pengalaman membeli-belah pengguna.

4. Kesimpulan

Algoritma Apriori ialah kaedah perlombongan peraturan persatuan yang biasa, dan terdapat berbilang perpustakaan pihak ketiga dalam Python yang boleh melaksanakan algoritma ini. Melalui perpustakaan ini, set item yang kerap dan peraturan persatuan boleh dilombong dengan mudah untuk menyediakan sokongan untuk analisis data dan membuat keputusan perniagaan.

Atas ialah kandungan terperinci Penjelasan terperinci algoritma Apriori dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn