연관 규칙 마이닝에 MySQL 데이터베이스를 사용하는 방법은 무엇입니까?
소개:
연관 규칙 마이닝은 데이터 세트의 항목 간 연관성을 발견하는 데 사용되는 데이터 마이닝 기술입니다. MySQL은 강력한 데이터 처리 및 쿼리 기능을 갖춘 널리 사용되는 관계형 데이터베이스 관리 시스템입니다. 이 기사에서는 데이터 준비, 연관 규칙 마이닝 알고리즘, SQL 문 구현 및 코드 예제를 포함하여 연관 규칙 마이닝을 위해 MySQL 데이터베이스를 사용하는 방법을 소개합니다.
1. 데이터 준비
광업 협회 규칙에 앞서 먼저 적합한 데이터 세트를 준비해야 합니다. 데이터 세트는 마이닝해야 하는 트랜잭션 및 항목 세트를 포함하는 연관 규칙 마이닝의 기초입니다. MySQL에서는 데이터 테이블을 생성하여 데이터 세트를 저장할 수 있습니다. 예를 들어 장바구니 데이터의 연관 규칙을 마이닝한다고 가정하면 "transactions"라는 데이터 테이블을 만들어 각 고객의 쇼핑 기록을 저장할 수 있습니다. 여기서 각 기록에는 고객의 여러 구매가 포함됩니다.
CREATE TABLE transaction (
customer_id INT,
item_id INT
);
그런 다음 장바구니 데이터를 데이터 테이블에 삽입합니다.
INSERT INTO transaction (customer_id, item_id) VALUES
(1, 101),
(1 , 102),
(1, 103),
(2, 101),
(2, 104),
(3, 102),
(3, 105),
(4, 101),
(4, 103),
(4, 104);
2. 연관 규칙 마이닝 알고리즘
일반적인 연관 규칙 마이닝 알고리즘에는 Apriori 알고리즘과 FP-Growth 알고리즘이 있습니다. Apriori 알고리즘은 후보 집합을 기반으로 점진적으로 후보 집합을 생성하고 지원 임계값을 계산하여 빈발 항목 집합과 연관 규칙을 찾는 반복 알고리즘입니다. FP-Growth 알고리즘은 빈발 항목 집합과 연관 규칙을 효율적으로 마이닝할 수 있는 접두사 트리 기반 알고리즘입니다. MySQL에서는 SQL 문을 사용하여 이 두 가지 알고리즘을 구현할 수 있습니다.
3. SQL 문 구현
SELECT item_id, COUNT(*) AS support
FROM transaction
GROUP BY item_id
HAVING support >= min_support;
여기서 "item_id"는 항목입니다. itemset 에서 "support"는 항목 세트의 지원이고 "min_support"는 설정된 최소 지원 임계값입니다. 이 SQL 문은 최소 지원 요구 사항을 충족하는 빈발 항목 집합을 반환합니다.
그런 다음 다음 SQL 문을 통해 연관 규칙을 생성합니다.
SELECT t1.item_id AS antecedent, t2.item_id AS consequent,
COUNT(*) / (SELECT COUNT(*) FROM transactions) AS confidence
FROM transaction AS t1, transaction AS t2
WHERE t1.item_id != t2.item_id
GROUP BY t1.item_id, t2.item_id
HAVING Confidence >= min_confidence;
여기서 "antecedent"는 규칙의 전항이고, "consequent"는 규칙의 결과이고, "confidence"는 규칙의 신뢰도입니다. , "min_confidence"는 최소 신뢰도 임계값 설정입니다. 이 SQL 문은 최소 신뢰도 요구 사항을 충족하는 연관 규칙을 반환합니다.
먼저, 항목의 빈번한 항목 집합을 저장할 임시 테이블을 생성합니다:
CREATE TEMPORARY TABLEfrequent_items (
item_id INT,
support INT
)
그런 다음, 다음 SQL 문을 통해 빈번한 항목 집합을 생성합니다.
INSERT INTO frequent_items
SELECT item_id, COUNT(*) AS support
FROM transaction
GROUP BY item_id
HAVING support >= min_support;
다음으로 자주 사용하는 항목 집합을 저장하기 위한 사용자 정의 변수를 만듭니다.
SET @frequent_items = ' ';
그런 다음 다음 SQL 문을 통해 연관 규칙을 생성합니다.
SELECT t1.item_id AS antecedent, t2.item_id AS consequent,
COUNT(*) / (SELECT COUNT(*) FROM transactions) AS confidence
FROM transaction AS t1, transaction AS t2
WHERE t1.item_id != t2 .item_id _ 및 Find_in_Set(T1.Item_id, @Frequent_items) & GT; 0
및 Find_in_SET(T2.ITEM_ID, @Frequent_items) & GT 0
Group by T1.item_id, Onhaving Confident; , 다음 SQL 문을 통해 사용자 정의 변수를 업데이트합니다.
SET @frequent_items = (SELECT GROUP_CONCAT(item_id) FROMfrequent_items);
4 코드 예제
다음은 MySQL 데이터베이스를 사용한 연관 규칙 마이닝에 대한 코드 예제입니다.-- 데이터 테이블 생성
CREATE TABLE 거래 (
customer_id INT,
);
--장바구니 데이터 삽입
INSERT INTO 거래 (customer_id, item_id) VALUES
(1, 101),
(1, 103),
(2, 101),
(2, 104),
(3, 102),
(3, 105),
(4, 101),
(4, 103 ),
( 4, 104);
-- Apriori 알고리즘
-- 자주 사용하는 항목 집합 생성
SELECT item_id, COUNT(*) AS support
GROUP BY item_id
HAVING support >= 2;
- - 연관 규칙 생성
SELECT t1.item_id AS antecedent, t2.item_id AS consequent,
COUNT(*) / (SELECT COUNT(*) FROM transactions) AS confidence
WHERE t1.item_id != t2.item_id
GROUP BY t1.item_id, t2.item_id
-- FP-성장 알고리즘
-- 임시 테이블 생성
CREATE TEMPORARY TABLE 자주_items(
지원 INT
);
-- 빈번한 항목 집합 생성
잦은 항목에 삽입
SELECT item_id, COUNT(*) AS support
FROM transaction
GROUP BY item_id
HAVING support >= 2;
-- 사용자 정의 변수 만들기
SET @frequent_items = ' ';
-- 연관 규칙 생성
SELECT t1.item_id AS 선행, t2.item_id AS 결과,
COUNT(*) / (SELECT COUNT(*) FROM transactions) AS confidence
FROM 트랜잭션 AS t1, 트랜잭션 AS t2
WHERE t1.item_id != t2.item_id
AND FIND_IN_SET(t1. item_id, @frequent_items) > 0
AND FIND_IN_SET(t2.item_id, @frequent_items) > 0
GROUP BY t1.item_id, t2.item_id
HAVING Confidence >= 0.5;
결론:
이 소개를 통해 기사, 우리는 연관 규칙 마이닝을 위해 MySQL 데이터베이스를 사용하는 방법을 배웠습니다. Apriori 알고리즘과 FP-Growth 알고리즘은 모두 SQL 문을 통해 구현할 수 있습니다. 이 기사가 연관 규칙 마이닝에 MySQL을 사용할 때 도움이 되기를 바랍니다.
위 내용은 연관 규칙 마이닝에 MySQL 데이터베이스를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!