Bagaimana untuk menggunakan pangkalan data MySQL untuk perlombongan peraturan persatuan?
Pengenalan:
Perlombongan peraturan persatuan ialah teknik perlombongan data yang digunakan untuk menemui perkaitan antara item dalam set data. MySQL ialah sistem pengurusan pangkalan data hubungan yang digunakan secara meluas dengan pemprosesan data dan fungsi pertanyaan yang berkuasa. Artikel ini akan memperkenalkan cara menggunakan pangkalan data MySQL untuk perlombongan peraturan persatuan, termasuk penyediaan data, algoritma perlombongan peraturan persatuan, pelaksanaan pernyataan SQL dan contoh kod.
1. Penyediaan data
Sebelum peraturan persatuan perlombongan, anda perlu menyediakan set data yang sesuai. Set data ialah asas untuk perlombongan peraturan persatuan, yang mengandungi urus niaga dan set item yang perlu dilombong. Dalam MySQL, set data boleh disimpan dengan mencipta jadual data. Sebagai contoh, dengan mengandaikan kami ingin melombong peraturan persatuan dalam data bakul beli-belah, kami boleh membuat jadual data bernama "urus niaga" untuk menyimpan rekod beli-belah setiap pelanggan, di mana setiap rekod mengandungi berbilang pembelian oleh pelanggan.
BUAT urus niaga JADUAL (
customer_id INT,
item_id INT
);
Kemudian masukkan data bakul beli-belah ke dalam jadual data:
INSERT INTO transactions (customer_id, item_id) NILAI
(1),
, 102),
(1, 103),
(2, 101),
(2, 104),
(3, 102),
(3, 105),
(4, 101),
(4, 103),
(4, 104);
2. Algoritma perlombongan peraturan persatuan
Algoritma perlombongan peraturan persatuan termasuk algoritma Apriori dan algoritma FP-Growth. Algoritma Apriori ialah algoritma berulang berdasarkan set calon yang menemui set item kerap dan peraturan perkaitan dengan menjana set calon secara beransur-ansur dan mengira ambang sokongan. Algoritma FP-Growth ialah algoritma berasaskan pepohon awalan yang boleh melombong set item kerap dan peraturan perkaitan dengan cekap. Dalam MySQL, kita boleh menggunakan pernyataan SQL untuk melaksanakan kedua-dua algoritma ini.
3. Pelaksanaan pernyataan SQL
PILIH item_id, KIRA(*) SEBAGAI sokongan
DARI urus niaga
KUMPULAN OLEH item_id
MENDAPAT sokongan >= min_support;
di mana, "item_id" ialah item dalam itemset , "support" ialah sokongan bagi set item dan "min_support" ialah ambang sokongan minimum yang ditetapkan. Kenyataan SQL ini akan mengembalikan set item kerap yang memenuhi keperluan sokongan minimum.
Kemudian, jana peraturan perkaitan melalui pernyataan SQL berikut:
PILIH t1.item_id SEBAGAI anteseden, t2.item_id SEBAGAI berbangkit,
COUNT(*) / (SELECT COUNT(*) FROM transactions) AS confidence
DARI urus niaga AS t1, urus niaga AS t2
WHERE t1.item_id_= KUMPULAN OLEH t1.item_id, t2.item_id
MEMPUNYAI keyakinan >= min_confidence;
item_id INT,
sokong INT
berikut: INT
); frequent_itemsPILIH item_id, COUNT(*) SEBAGAI sokongan
DARI urus niaga
KUMPULAN OLEH item_id
MENDAPAT sokongan >= min_support;
=frequent items @
' ';Kemudian, jana peraturan perkaitan melalui pernyataan SQL berikut: PILIH t1.item_id SEBAGAI anteseden, t2.item_id SEBAGAI berbangkit,COUNT(*) / (SELECT COUNT(*) FROM transactions) AS confidence
WHERE t1.item_id .item_id _ Dan find_in_set (t1.item_id, @frequent_items) & gt; pembolehubah melalui pernyataan SQL berikut:
SET @frequent_items = (SELECT GROUP_CONCAT(item_id) FROM frequent_items);
4 Contoh Kod
Berikut ialah contoh kod untuk perlombongan peraturan persatuan menggunakan pangkalan data MySQL:
-- Cipta Data. jadual
BUAT urus niaga JADUAL (customer_id INT,
item_id INT);
MASUKKAN KE DALAM transaksi (customer_id, item_id) NILAI
(1, 101),
(1, 10) 1, 103),
(2, 101),
(2, 104),
(3, 105),
(4, 101),
(4, 103),
( 4 , 104);
-- Algoritma Apriori
-- Jana set item yang kerap
PILIH item_id, KIRA(*) SEBAGAI sokongan
DARI urus niaga
KUMPULAN OLEH item_id
MENDAPAT sokongan >= 2;
-- PILIH t1.item_id SEBAGAI anteseden, t2.item_id SEBAGAI berbangkit,
COUNT(*) / (SELECT COUNT(*) FROM transactions) AS confidence
-- Algoritma FP-Growth
-- Cipta jadual sementara
item_id INT,
sokong INT
);
-- Jana set item yang kerap
MASUKKAN KE DALAM frequent_items
PILIH item_id, KIRA(*) SEBAGAI sokongan
DARI urus niaga
KUMPULAN OLEH item_id
MENDAPAT sokongan >= 2;
-- Cipta pengguna-defined SET = frequent SET ';
PILIH t1.item_id SEBAGAI anteseden, t2.item_id SEBAGAI berbangkit,
COUNT(*) / (SELECT COUNT(*) FROM transactions) AS confidence
WHERE t1.item_id != t2.item_id(id_t_IN_ID
item_id, @frequent_items) > 0
DAN CARI_IN_SET(t2.item_id, @frequent_items) > 0
GROUP OLEH t1.item_id, t2.item_id
MEMPUNYAI keyakinan >= 0.5
; artikel, Kami belajar cara menggunakan pangkalan data MySQL untuk perlombongan peraturan persatuan. Kedua-dua algoritma Apriori dan algoritma FP-Growth boleh dilaksanakan melalui pernyataan SQL. Saya harap artikel ini akan membantu anda apabila menggunakan MySQL untuk perlombongan peraturan persatuan.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan pangkalan data MySQL untuk perlombongan peraturan persatuan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!