Heim >Datenbank >MySQL-Tutorial >Wie verwende ich die MySQL-Datenbank für das Assoziationsregel-Mining?

Wie verwende ich die MySQL-Datenbank für das Assoziationsregel-Mining?

PHPz
PHPzOriginal
2023-07-12 20:06:07833Durchsuche

Wie verwende ich die MySQL-Datenbank für das Assoziationsregel-Mining?

Einführung:
Association Rule Mining ist eine Data-Mining-Technik, mit der Assoziationen zwischen Elementen in einem Datensatz ermittelt werden. MySQL ist ein weit verbreitetes relationales Datenbankverwaltungssystem mit leistungsstarken Datenverarbeitungs- und Abfragefunktionen. In diesem Artikel wird die Verwendung der MySQL-Datenbank für das Assoziationsregel-Mining vorgestellt, einschließlich Datenvorbereitung, Assoziationsregel-Mining-Algorithmus, SQL-Anweisungsimplementierung und Codebeispiele.

1. Datenvorbereitung
Bevor Sie den Bergbauverband regeln, müssen Sie zunächst einen geeigneten Datensatz vorbereiten. Der Datensatz ist die Grundlage für das Assoziationsregel-Mining, das die Transaktionen und Elementsätze enthält, die abgebaut werden müssen. In MySQL können Datensätze durch die Erstellung von Datentabellen gespeichert werden. Angenommen, wir möchten beispielsweise Zuordnungsregeln in Warenkorbdaten ermitteln, können wir eine Datentabelle mit dem Namen „Transaktionen“ erstellen, um die Einkaufsdatensätze jedes Kunden zu speichern, wobei jeder Datensatz mehrere Käufe eines Kunden enthält.

TABELLE ERSTELLEN Transaktionen (
Kunden-ID INT,
Artikel-ID INT
);

Dann fügen Sie die Warenkorbdaten in die Datentabelle ein:

INSERT INTO Transaktionen (Kunden-ID, Artikel-ID) VALUES
(1, 101),
(1 , 102),
(1, 103),
(2, 101),
(2, 104),
(3, 102),
(3, 105),
(4, 101),
(4, 103),
(4, 104);

2. Zu den gängigen Assoziationsregel-Mining-Algorithmen gehören der Apriori-Algorithmus und der FP-Wachstumsalgorithmus. Der Apriori-Algorithmus ist ein iterativer Algorithmus, der auf Kandidatensätzen basiert und häufige Elementsätze und Assoziationsregeln erkennt, indem er nach und nach Kandidatensätze generiert und Unterstützungsschwellenwerte berechnet. Der FP-Growth-Algorithmus ist ein präfixbaumbasierter Algorithmus, der häufige Elementmengen und Assoziationsregeln effizient ermitteln kann. In MySQL können wir SQL-Anweisungen verwenden, um diese beiden Algorithmen zu implementieren.

3. Implementierung der SQL-Anweisung

    Apriori-Algorithmus
  1. Der Apriori-Algorithmus umfasst zwei Schritte: häufige Elementsatzgenerierung und Assoziationsregelgenerierung. Generieren Sie zunächst häufige Itemsets mit der folgenden SQL-Anweisung:
SELECT item_id, COUNT(*) AS support

FROM communications
GROUP BY item_id
HAVING support >= min_support;

wobei „item_id“ das Element im ist itemset, „support“ ist die Unterstützung des Elementsatzes und „min_support“ ist der festgelegte Mindestunterstützungsschwellenwert. Diese SQL-Anweisung gibt häufige Itemsets zurück, die die Mindestunterstützungsanforderungen erfüllen. 🔜 GROUP BY t1.item_id, t2.item_id

HAVING confidenz >= min_confidence;

Wobei „Antezedenz“ die Antezedenz der Regel ist, „Konsequenz“ die Konsequenz der Regel und „Konfidenz“ die Konfidenz der Regel ist , „min_confidence“ ist der festgelegte minimale Konfidenzschwellenwert. Diese SQL-Anweisung gibt Assoziationsregeln zurück, die die Mindestanforderungen an die Zuverlässigkeit erfüllen.

FP-Growth-Algorithmus

FP-Growth-Algorithmus ermittelt häufige Elementmengen und Assoziationsregeln, indem er einen Präfixbaum erstellt. In MySQL kann der FP-Growth-Algorithmus mithilfe temporärer Tabellen und benutzerdefinierter Variablen implementiert werden.


Erstellen Sie zunächst eine temporäre Tabelle, um häufige Artikelmengen zu speichern:

CREATE TEMPORARY TABLE frequent_items (

item_id INT,
    support INT
  1. );
  2. Generieren Sie dann häufige Artikelmengen mit der folgenden SQL-Anweisung:

INSERT INTO frequent_items

SELECT item_id, COUNT(*) AS support

FROM Transactions
GROUP BY item_id
HAVING support >= min_support;

Als nächstes erstellen Sie eine benutzerdefinierte Variable, um den Satz häufiger Elemente zu speichern:

SET @frequent_items = ' ';


Generieren Sie dann Assoziationsregeln über die folgende SQL-Anweisung:

SELECT t1.item_id AS Antecedent, t2.item_id AS Consequent,

   COUNT(*) / (SELECT COUNT(*) FROM transactions) AS confidence

FROM Transactions AS t1, Transactions AS t2

WHERE t1.item_id != t2 .item_id _ Und Find_in_Set (T1.Item_id, @Frequent_items) & GT; 0

und Find_in_SET (T2.ITEM_ID, @Frequent_items) & GT; , Aktualisieren Sie benutzerdefinierte Variablen über die folgende SQL-Anweisung:

SET @frequent_items = (SELECT GROUP_CONCAT(item_id) FROM frequent_items);

4. Codebeispiele

Das Folgende ist ein Codebeispiel für das Assoziationsregel-Mining mit MySQL-Datenbank:

-- Datentabelle erstellen
TABELLE ERSTELLEN Transaktionen (
Kunden-ID INT,
Artikel-ID INT
);

--Warenkorbdaten einfügen

INSERT INTO Transaktionen (Kunden-ID, Artikel-ID) VALUES

(1, 101),

(1, 102),

(1, 103),

(2, 101),
(2, 104),

(3, 102),

(3, 105),
(4, 101),
(4, 103 ),
(4, 104); - Assoziationsregeln generieren
SELECT t1.item_id AS antecedent, t2.item_id AS consequente,

   COUNT(*) / (SELECT COUNT(*) FROM transactions) AS confidence

FROM Transaktionen AS t1, Transaktionen AS t2
WHERE t1.item_id != t2.item_id
GROUP BY t1.item_id, t2.item_id
HAVING Confidence > = 0,5;

-- FP-Wachstumsalgorithmus
-- Temporäre Tabelle erstellen
CREATE TEMPORARY TABLE frequent_items (
item_id INT,
support INT
);

-- Generieren Sie häufige Itemsets.
INSERT INTO frequent_items. ';

-- Assoziationsregeln generieren
SELECT t1.item_id ALS Antezedens, t2.item_id ALS Folge,

   COUNT(*) / (SELECT COUNT(*) FROM transactions) AS confidence

FROM Transaktionen AS t1, Transaktionen ALS t2

WHERE t1.item_id != t2.item_id
AND FIND_IN_SET(t1. item_id, @frequent_items)> Artikel: Wir haben gelernt, wie man die MySQL-Datenbank für das Assoziationsregel-Mining verwendet. Sowohl der Apriori-Algorithmus als auch der FP-Growth-Algorithmus können durch SQL-Anweisungen implementiert werden. Ich hoffe, dieser Artikel wird Ihnen bei der Verwendung von MySQL für das Assoziationsregel-Mining hilfreich sein.

Das obige ist der detaillierte Inhalt vonWie verwende ich die MySQL-Datenbank für das Assoziationsregel-Mining?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn