파이썬 연관성분석 샘플 코드
장바구니 분석을 해야하는데 파이썬은 깔려있고, R은 없고
내가 가지고 있는 코드는 R로 작성 한거고
에라 이참에 파이썬으로 해보자
import pandas as pd
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori, association_rules
# 연관성분석 대상 데이터프레임 필요
# 주문번호별로 상품들을 묶어서 리스트로 변환하는 함수 정의
def df_to_list(df_delv):
return df_delv.groupby('order_no')['goods_name'].apply(list).tolist()
# 특수 문자와 줄바꿈 문자를 제거하는 함수 정의
def remove_special_characters(transaction):
return [re.sub(r'[^\w\s]', '', item).replace('\n', '') for item in transaction]
# 데이터프레임을 리스트로 변환
transactions = df_to_list(df)
# 각 트랜잭션에서 None 값을 빈 문자열로 대체하고, 특수 문자 및 줄바꿈 문자 제거
transactions = [[item if item is not None else '' for item in transaction] for transaction in transactions]
transactions = [remove_special_characters(transaction) for transaction in transactions]
# TransactionEncoder를 사용하여 트랜잭션을 원-핫 인코딩으로 변환
te = TransactionEncoder()
te_ary = te.fit(transactions).transform(transactions)
df = pd.DataFrame(te_ary, columns=te.columns_)
# Apriori 알고리즘을 사용하여 빈발 항목 집합을 추출
frequent_itemsets = apriori(df, min_support=0.005, use_colnames=True)
# 연관 규칙 생성
rules = association_rules(frequent_itemsets, metric="lift", min_threshold=1)
# 결과를 CSV 파일로 저장
rules.to_csv('D:/output.csv', index=False)
# 결과 출력
print(rules)
장바구니 분석을 할때마다 느끼는 거지만, 맥주와 기저귀 얘기는 진짜일까 거짓말일까
'코딩' 카테고리의 다른 글
SQL 컬럼별, 행별 합/평균/최대/최소 집계값 계산법 (0) | 2024.05.09 |
---|---|
[파이썬] 지도위에 폴리곤 표시하기, 인코딩 자동감지. 파일 불러오기. (0) | 2024.01.23 |