> 백엔드 개발 > 파이썬 튜토리얼 > Python의 연관 규칙 마이닝 기술

Python의 연관 규칙 마이닝 기술

王林
풀어 주다: 2023-06-09 23:07:35
원래의
2146명이 탐색했습니다.

Python은 데이터 마이닝, 머신러닝 등 다양한 분야에 적용할 수 있는 강력한 프로그래밍 언어입니다. 데이터 마이닝 분야에서 연관 규칙 마이닝은 데이터 세트의 여러 항목 간의 관계와 이러한 관계가 다른 항목에 미치는 영향을 발견하는 데 사용할 수 있는 일반적으로 사용되는 기술입니다. 이 기사에서는 Python의 연관 규칙 마이닝 기술을 간략하게 소개합니다.

  1. Apriori 알고리즘

Apriori 알고리즘은 연관 규칙 마이닝 분야의 고전적인 알고리즘으로, 데이터 세트에서 빈발 항목 집합과 연관 규칙을 찾는 데 사용할 수 있습니다. 빈번한 항목 집합은 데이터 집합에서 더 자주 나타나는 항목 집합을 참조하는 반면, 연관 규칙은 두 개 이상의 항목 사이의 관계를 참조하거나, 하나가 발생하면 다른 항목도 나타날 가능성이 있음을 의미합니다. 표시하는. .

mlxtend 라이브러리의 apriori 함수를 사용하여 Python에서 Apriori 알고리즘을 구현할 수 있습니다. 다음은 간단한 샘플 코드입니다.

from mlxtend.frequent_patterns import apriori

# 构建数据集
data = [['牛奶', '面包', '啤酒'],
        ['奶酪', '面包', '黄油'],
        ['牛奶', '面包', '黄油', '鸡蛋'],
        ['奶酪', '黄油', '鸡蛋'],
        ['面包', '啤酒']]

# 使用apriori算法挖掘频繁项集
frequent_itemsets = apriori(data, min_support=0.6)

# 输出频繁项集
print(frequent_itemsets)
로그인 후 복사

위 코드에서는 먼저 5개의 장바구니 내용이 포함된 데이터 세트를 정의합니다. 그런 다음 mlxtend 라이브러리의 apriori 함수를 사용하여 빈발 항목 집합을 마이닝합니다. 함수의 첫 번째 매개변수는 데이터 세트이고 두 번째 매개변수는 최소 지원 임계값으로 여기서는 0.6으로 설정됩니다.

출력에서 알고리즘이 두 개의 빈번한 항목 집합인 ['Bread']와 ['Milk', 'Bread']를 발견한 것을 볼 수 있습니다. 이는 이 데이터 세트에서 가장 많은 사람들이 빵을 구입하고 우유와 빵이 그 뒤를 따른다는 것을 의미합니다. 지원 임계값을 조정하여 다양한 크기의 빈발 항목 집합을 발견할 수 있습니다.

  1. 연관 규칙 추출

빈발 항목 집합을 찾은 후 계속해서 연관 규칙을 추출할 수 있습니다. 연관 규칙은 특정 항목이 함께 나타날 확률 또는 다른 항목이 나타날 때 한 항목이 나타날 확률을 이해하는 데 도움이 됩니다.

mlxtend 라이브러리의 Association_rules 함수를 사용하여 Python에서 연관 규칙을 추출할 수 있습니다. 다음은 간단한 샘플 코드입니다.

from mlxtend.frequent_patterns import association_rules, apriori

data = [['牛奶', '面包', '啤酒'],
        ['奶酪', '面包', '黄油'],
        ['牛奶', '面包', '黄油', '鸡蛋'],
        ['奶酪', '黄油', '鸡蛋'],
        ['面包', '啤酒']]

# 使用apriori算法挖掘频繁项集
frequent_itemsets = apriori(data, min_support=0.6)

# 使用association_rules函数提取关联规则
rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.8)

# 输出关联规则
print(rules)
로그인 후 복사

위 코드에서는 먼저 Apriori 알고리즘을 사용하여 데이터 세트에서 빈발 항목 집합을 찾습니다. 그런 다음 Association_rules 함수를 사용하여 연관 규칙을 추출하십시오. 함수의 첫 번째 매개변수는 빈발항목 집합이고, 두 번째 매개변수는 연관규칙을 평가하기 위한 지표로 여기서는 신뢰도(confidence)를 선택하고, 세 번째 매개변수는 최소 신뢰도 임계값으로 여기서는 0.8로 설정된다.

출력에서 알고리즘이 신뢰 수준 1.0인 '빵' => '맥주'라는 연관 규칙을 찾았음을 확인할 수 있습니다. 이는 빵을 구매한 사람 중 100%가 맥주도 구매했다는 의미입니다. 이 연관 규칙은 추천 시스템에서 사용자에게 제품을 추천하는 데 사용될 수 있습니다.

  1. FP-Growth 알고리즘

FP-Growth 알고리즘은 연관 규칙 마이닝 분야의 또 다른 고전적인 알고리즘으로 Apriori 알고리즘보다 빠르며 대규모 데이터 세트를 처리할 수 있습니다.

Pyfpgrowth 라이브러리는 Python에서 FP-Growth 알고리즘을 구현하는 데 사용할 수 있습니다. 다음은 간단한 샘플 코드입니다.

import pyfpgrowth

# 构建数据集
data = [['牛奶', '面包', '啤酒'],
        ['奶酪', '面包', '黄油'],
        ['牛奶', '面包', '黄油', '鸡蛋'],
        ['奶酪', '黄油', '鸡蛋'],
        ['面包', '啤酒']]

# 使用FP-Growth算法挖掘频繁项集
patterns = pyfpgrowth.find_frequent_patterns(data, 2)

# 使用FP-Growth算法提取关联规则
rules = pyfpgrowth.generate_association_rules(patterns, 0.8)

# 输出频繁项集和关联规则
print(patterns)
print(rules)
로그인 후 복사

위 코드에서는 먼저 데이터 세트를 정의한 다음 pyfpgrowth 라이브러리의 find_frequent_patterns 함수를 사용하여 빈발 항목 세트를 마이닝합니다. 함수의 첫 번째 매개변수는 데이터 세트이고, 두 번째 매개변수는 지원 임계값입니다. 여기서는 지원 임계값을 2로 설정했습니다. 즉, 각 품목 세트는 최소 2개의 장바구니에 표시되어야 합니다. 이 함수는 모든 빈발 항목 집합과 해당 지원 횟수를 포함하는 사전을 반환합니다.

그런 다음 pyfpgrowth 라이브러리의 generate_association_rules 함수를 사용하여 연관 규칙을 추출하세요. 함수의 첫 번째 매개변수는 빈발항목집합 사전이고, 두 번째 매개변수는 신뢰도 임계값이다. 여기서는 신뢰도 임계값을 0.8로 설정했습니다.

출력에서 알고리즘이 ('빵',)과 ('빵', '우유')라는 두 개의 빈번한 항목 집합을 발견한 것을 볼 수 있습니다. 동시에 알고리즘은 신뢰 수준 1.0인 ('빵',) => ('맥주',) 연관 규칙을 추출했습니다. 이는 빵을 구매하는 사람 중 100%가 맥주를 구매한다는 의미입니다. 이 외에도 신뢰 수준이 0.8보다 높은 다른 연관 규칙도 볼 수 있습니다.

요약

연관 규칙 마이닝은 데이터 세트의 여러 항목 간의 관계와 이러한 관계가 다른 항목에 미치는 영향을 발견하는 데 사용할 수 있는 매우 유용한 데이터 마이닝 기술입니다. Python은 Apriori 알고리즘 및 FP-Growth 알고리즘을 포함하여 연관 규칙 마이닝을 구현하는 다양한 방법을 제공합니다. 구체적인 구현에서는 빈발항목집합과 연관규칙의 임계값 설정과 이를 실제 문제에 어떻게 적용할지에도 주의를 기울여야 한다.

위 내용은 Python의 연관 규칙 마이닝 기술의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿