Rumah > pangkalan data > tutorial mysql > Bagaimana untuk menggunakan pangkalan data MySQL untuk perlombongan peraturan persatuan?

Bagaimana untuk menggunakan pangkalan data MySQL untuk perlombongan peraturan persatuan?

PHPz
Lepaskan: 2023-07-12 20:06:07
asal
830 orang telah melayarinya

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

  1. Algoritma Apriori
    Algoritma Apriori merangkumi dua langkah: penjanaan set item kerap dan penjanaan peraturan persatuan. Mula-mula, hasilkan set item yang kerap melalui pernyataan SQL berikut:

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
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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;

Di mana, "antecedent" ialah anteseden peraturan, "consequent" ialah akibat peraturan, "confidence" ialah keyakinan peraturan , "min_confidence" ialah set ambang keyakinan minimum. Pernyataan SQL ini akan mengembalikan peraturan persatuan yang memenuhi keperluan keyakinan minimum.

    Algoritma FP-Growth
  1. FP-Algoritma Pertumbuhan melombong set item yang kerap dan peraturan perkaitan dengan membina pepohon awalan. Dalam MySQL, algoritma FP-Growth boleh dilaksanakan menggunakan jadual sementara dan pembolehubah yang ditentukan pengguna.
Pertama sekali, buat jadual sementara untuk menyimpan item set kerap item:

BUAT JADUAL SEMENTARA frequent_items (

item_id INT,
sokong INT

Kemudian, jana penyataan SQL

berikut: INT

); frequent_items

PILIH item_id, COUNT(*) SEBAGAI sokongan
DARI urus niaga
KUMPULAN OLEH item_id
MENDAPAT sokongan >= min_support;

Seterusnya, buat pembolehubah yang ditentukan pengguna untuk menyimpan set item yang kerap:

=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
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

DARI urus niaga AS t1, urus niaga SEBAGAI t2

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 data bakul beli-belah

MASUKKAN KE DALAM transaksi (customer_id, item_id) NILAI
(1, 101),
(1, 10) 1, 103),
(2, 101),
(2, 104),

(3, 102),

(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;

Jana peraturan persatuan


-- PILIH t1.item_id SEBAGAI anteseden, t2.item_id SEBAGAI berbangkit,

   COUNT(*) / (SELECT COUNT(*) FROM transactions) AS confidence
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

DARI urus niaga SEBAGAI t1, transaksi SEBAGAI t2
WHERE t1.item_id != t2.item_id
KUMPULAN OLEH t1.item_id, t2.item_id, t2.item_id; 0.5;

-- Algoritma FP-Growth
-- Cipta jadual sementara

BUAT JADUAL SEMENTARA frequent_items (

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 ';

-- Jana peraturan persatuan

PILIH t1.item_id SEBAGAI anteseden, t2.item_id SEBAGAI berbangkit,

   COUNT(*) / (SELECT COUNT(*) FROM transactions) AS confidence
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
DARI urus niaga SEBAGAI t1, urus niaga SEBAGAI t2

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan