Apriori 알고리즘은 데이터 마이닝 분야에서 일반적인 연관 규칙 마이닝 방법이며 비즈니스 인텔리전스, 마케팅 및 기타 분야에서 널리 사용됩니다. 일반 프로그래밍 언어로서 Python은 Apriori 알고리즘을 구현하기 위한 여러 타사 라이브러리도 제공합니다. 이 기사에서는 Python에서 Apriori 알고리즘의 원리, 구현 및 적용을 자세히 소개합니다.
1. Apriori 알고리즘의 원리
Apriori 알고리즘의 원리를 소개하기 전에 먼저 연관 규칙 마이닝의 두 가지 개념인 빈발 항목 집합과 지원에 대해 알아보겠습니다.
빈번 항목 집합: 특정 데이터 집합에서 자주 함께 나타나는 항목 집합을 말합니다.
지원: 모든 거래에 아이템 세트가 나타나는 빈도를 지원이라고 합니다.
예를 들어 슈퍼마켓의 거래 데이터에서 전체 거래에서 {우유, 케이크} 조합의 빈도는 10%입니다. 그러면 이 조합에 대한 지지도는 10%입니다.
Apriori 알고리즘은 빈발항목 집합 개념을 기반으로 하며, 빈발항목 집합을 레이어별로 검색하여 항목 간의 상관관계를 탐색합니다. 아이디어는 다음과 같습니다.
구체적으로 Apriori 알고리즘의 구현 과정은 다음과 같습니다.
Apriori 알고리즘은 비어 있지 않은 각 하위 집합에 대한 지원 계산이 필요하기 때문에 시간 복잡도가 매우 높다는 점에 유의해야 합니다. 계산량을 줄이기 위해 해시 테이블 사용 및 후보 감소와 같은 일부 최적화 기술을 사용할 수 있습니다.
2. Python은 Apriori 알고리즘을 구현합니다.
Python에는 mlxtend, Orange 등과 같은 Apriori 알고리즘을 구현할 수 있는 여러 타사 라이브러리가 있습니다. 다음은 mlxtend를 예로 사용하여 Apriori 알고리즘의 구현 단계를 소개합니다.
pip를 사용하여 mlxtend 설치:
pip install mlxtend
numpy 라이브러리 및 mlxtend 라이브러리 가져오기:
import numpy as np from mlxtend.preprocessing import TransactionEncoder from mlxtend.frequent_patterns import apriori, association_rules
간단한 트랜잭션 생성 데이터 세트, 4개의 트랜잭션 포함
dataset = [['牛奶', '面包', '啤酒', '尿布'], ['牛奶', '面包', '啤酒', '尿布'], ['面包', '啤酒', '尿布', '饼干'], ['牛奶', '尿布', '啤酒', '饼干']]
TransactionEncoder를 사용하여 데이터를 부울 테이블로 변환하는 단계입니다. 이 단계는 거래 데이터 세트에서 빈번 항목 세트를 추출하는 것입니다.
te = TransactionEncoder() te_ary = te.fit(dataset).transform(dataset) df = pd.DataFrame(te_ary, columns=te.columns_)
frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)
rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.7)
위 내용은 Python의 Apriori 알고리즘에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!