> 백엔드 개발 > 파이썬 튜토리얼 > Python의 Apriori 알고리즘에 대한 자세한 설명

Python의 Apriori 알고리즘에 대한 자세한 설명

PHPz
풀어 주다: 2023-06-10 08:03:13
원래의
4830명이 탐색했습니다.

Apriori 알고리즘은 데이터 마이닝 분야에서 일반적인 연관 규칙 마이닝 방법이며 비즈니스 인텔리전스, 마케팅 및 기타 분야에서 널리 사용됩니다. 일반 프로그래밍 언어로서 Python은 Apriori 알고리즘을 구현하기 위한 여러 타사 라이브러리도 제공합니다. 이 기사에서는 Python에서 Apriori 알고리즘의 원리, 구현 및 적용을 자세히 소개합니다.

1. Apriori 알고리즘의 원리

Apriori 알고리즘의 원리를 소개하기 전에 먼저 연관 규칙 마이닝의 두 가지 개념인 빈발 항목 집합과 지원에 대해 알아보겠습니다.

빈번 항목 집합: 특정 데이터 집합에서 자주 함께 나타나는 항목 집합을 말합니다.

지원: 모든 거래에 아이템 세트가 나타나는 빈도를 지원이라고 합니다.

예를 들어 슈퍼마켓의 거래 데이터에서 전체 거래에서 {우유, 케이크} 조합의 빈도는 10%입니다. 그러면 이 조합에 대한 지지도는 10%입니다.

Apriori 알고리즘은 빈발항목 집합 개념을 기반으로 하며, 빈발항목 집합을 레이어별로 검색하여 항목 간의 상관관계를 탐색합니다. 아이디어는 다음과 같습니다.

  1. 단일 품목 세트(즉, 개별 구매 품목)부터 시작하여 자주 사용하는 품목 세트를 상향식으로 채굴합니다.
  2. 항목 집합의 지원도가 미리 설정된 최소 지원 임계값을 충족하는 경우에만 빈발 항목 집합으로 간주할 수 있습니다.
  3. 빈발 항목 집합을 기반으로 강력한 연관 규칙 집합을 구축하세요. 강한 연관 규칙은 연관 규칙에서 조건 항목과 결과 항목 간의 연결이 매우 가까운 규칙을 의미합니다.

구체적으로 Apriori 알고리즘의 구현 과정은 다음과 같습니다.

  1. 모든 항목을 계산하여 단일 항목 세트의 지원 개수를 얻습니다.
  2. 지원이 최소 지원 임계값을 충족하는 각 단일 항목 집합에 대해 빈발 항목 집합으로 간주될 수 있습니다.
  3. 각 빈발 항목 집합에 대해 비어 있지 않은 모든 하위 집합을 생성하고 생성 프로세스 중에 계산하여 각 하위 집합의 지지도를 계산합니다.
  4. 현재 생성된 하위 집합의 지지도가 최소 지지도 기준을 충족하면 해당 하위 집합이 빈발항목집합으로 저장됩니다.
  5. 빈발 항목 집합을 기반으로 강력한 연관 규칙 집합을 구축하세요. 빈발항목집합의 경우 부분집합을 조건으로, 나머지 부분을 결과로 선택하여 신뢰도를 계산할 수 있습니다. 신뢰도가 최소 신뢰도 임계값을 충족하면 연관 규칙이 강력한 규칙으로 저장됩니다.
  6. 새로운 빈발 항목 집합이나 강력한 규칙이 없을 때까지 3~5단계를 반복적으로 수행합니다.

Apriori 알고리즘은 비어 있지 않은 각 하위 집합에 대한 지원 계산이 필요하기 때문에 시간 복잡도가 매우 높다는 점에 유의해야 합니다. 계산량을 줄이기 위해 해시 테이블 사용 및 후보 감소와 같은 일부 최적화 기술을 사용할 수 있습니다.

2. Python은 Apriori 알고리즘을 구현합니다.

Python에는 mlxtend, Orange 등과 같은 Apriori 알고리즘을 구현할 수 있는 여러 타사 라이브러리가 있습니다. 다음은 mlxtend를 예로 사용하여 Apriori 알고리즘의 구현 단계를 소개합니다.

  1. mlxtend 라이브러리 설치

pip를 사용하여 mlxtend 설치:

pip install mlxtend
로그인 후 복사
  1. 필요한 라이브러리 가져오기

numpy 라이브러리 및 mlxtend 라이브러리 가져오기:

import numpy as np
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori, association_rules
로그인 후 복사
  1. 데이터 준비

간단한 트랜잭션 생성 데이터 세트, 4개의 트랜잭션 포함

dataset = [['牛奶', '面包', '啤酒', '尿布'],
           ['牛奶', '面包', '啤酒', '尿布'],
           ['面包', '啤酒', '尿布', '饼干'],
           ['牛奶', '尿布', '啤酒', '饼干']]
로그인 후 복사
  1. 데이터를 부울 테이블로 변환

TransactionEncoder를 사용하여 데이터를 부울 테이블로 변환하는 단계입니다. 이 단계는 거래 데이터 세트에서 빈번 항목 세트를 추출하는 것입니다.

te = TransactionEncoder()
te_ary = te.fit(dataset).transform(dataset)
df = pd.DataFrame(te_ary, columns=te.columns_)
로그인 후 복사

    빈발 항목 집합 마이닝
Apriori 함수를 사용하여 부울 테이블에서 빈발 항목 집합을 마이닝하세요.

frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)
로그인 후 복사

min_support 매개변수를 설정하면 빈발 항목 집합의 최소 지원을 제어할 수 있습니다. 위 코드에서는 최소 지원이 0.5로 설정되어 있습니다.

    강력한 연관 규칙 세트 구축
빈번 항목 세트를 기반으로 Association_rules 함수를 사용하여 강력한 연관 규칙 세트 구축:

rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.7)
로그인 후 복사
메트릭 매개변수를 설정하여 품질 평가에 사용되는 메트릭을 제어할 수 있습니다. 협회 규칙의. 위 코드에서는 신뢰도를 평가 지표로 사용하고 최소 신뢰도 임계값을 0.7로 설정했습니다.

3. Apriori 알고리즘 적용 시나리오

Apriori 알고리즘은 마케팅, 추천 시스템, 소셜 네트워크 분석 등 다양한 분야에 적용될 수 있습니다. 다음은 상품 추천에 Apriori 알고리즘을 적용하는 방법을 전자상거래 플랫폼을 예로 들어 설명합니다.

전자상거래 플랫폼은 일반적으로 사용자의 거래 기록을 기록하고, 이 기록을 활용하여 사용자가 관심을 가질 만한 상품을 추천합니다. Apriori 알고리즘을 통해 빈도가 높은 상품 조합을 채굴할 수 있습니다. 예를 들어 A, B, C 상품을 구매하는 사람들은 D 상품을 구매할 확률이 높습니다. 이러한 연관 규칙을 기반으로 전자상거래 플랫폼은 사용자에게 해당 상품을 추천하여 사용자의 거래율과 쇼핑 경험을 향상시킬 수 있습니다.

4. 결론

Apriori 알고리즘은 일반적인 연관 규칙 마이닝 방법이며 Python에는 이 알고리즘을 구현할 수 있는 여러 타사 라이브러리가 있습니다. 이러한 라이브러리를 통해 빈번한 항목 집합과 연관 규칙을 쉽게 마이닝하여 데이터 분석 및 비즈니스 의사 결정을 지원할 수 있습니다.

위 내용은 Python의 Apriori 알고리즘에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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