728x90
1. 지표를 이용한 연관규칙의 분석
연관분석의 지표
- Support(지지도): 이걸 본 사람이 얼마나 많을까?
- support(A): A가 등장하는 트랜잭션의 비율
- support(A -> B): A와 B가 모두 등장하는 트랜잭션의 비율
- Confidence(신뢰도): 이걸 본 사람은 저것도 봤을까?
- confidence(A -> B): A가 등장하는 트랜잭션 중, B까지 등장하는 비율
- confidence(A -> B) = support(A->B) / support(A)
- 높은 confidence를 갖는 연관규칙을 반드시 유의미하다고 볼 수 있나?
- confidence(A -> B): A가 등장하는 트랜잭션 중, B까지 등장하는 비율
- lift(향상도)
- lift(A -> B) = confidence(A -> B) / support(B)
- support(B)가 높아 confidence(A -> B) 값이 높아지는 것을 방지
- lift(A -> B)와 lift(B -> A)의 값을 비교하면?
- 동일하다 즉, 방향성이 없다.
- lift(A -> B) = confidence(A -> B) / support(B)
Python과 연관규칙 생성
- Apriori Algorithm 적용을 위한 라이브러리
!pip install mlxtend
import pandas as pd
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
- Apriori Algorithm 적용의 실제
df = pd.read_csv('kuflix.csv')
result = apriori(df, min_support = 0.5, use_colnames = True)
# 지지도가 min_support 이상인 집합(규칙)을 선택
# min_support가 커질 수록 apriori 알고리즘의 속도가 빨라짐
- 연관분석을 위한 association_rules
# apriori 수행 결과가 result에 저장되어 있다고 가정
# 연관 규칙 중에서 metric을 기준으로 threshold를 설정 (반드시 support일 필요가 없음)
result2 = association_rules(result, metric = 'confidence', min_threshold = 0.5)
2. 지지도를 이용한 시퀀스 마이닝
모든 시점이 꼭 같아야 하나
- Sequence: 이벤트의 발생 순서를 나타낸 것
- A의 시퀀스는 다음과 같음: <{1, 2}, {2, 3, 4}, {2, 4, 5}>
- Subsequence: 시퀀스에 포함된 부분 시퀀스
- 서브시퀀스의 지지도를 이용하여 시퀀스 마이닝을 수행할 수 있음
- A의 한 서브시퀀스: <{2}, {2, 4}, {4, 5}>
시퀀스 마이닝
시퀀스 마이닝은 subsequence의 support를 이용하여 주로 수행
- 지지도 s(<{2}, {2, 3}>)은?
- A가 <{2}, {2, 3}>을 subsequence를 가지고 있는가? O
- B - X / C - O / D - O / E - X
- 3/5 = 0.6
- 지지도 s(<{3}, {5}>)은?
- A - O / B - O / C - O / D - X / E - O
- 4/5 = 0.8
'대학공부 > 데이터과학' 카테고리의 다른 글
거대 언어 모델과 프롬프트 엔지니어링 (1) | 2024.06.04 |
---|---|
데이터 거버넌스와 데이터과학의 미래 (0) | 2024.05.27 |
군집화 알고리즘과 군집에 대한 평가 (0) | 2024.05.13 |
여러 가지 방법을 이용한 분류 (0) | 2024.04.29 |
개인정보 비식별화와 데이터 윤리 (0) | 2024.04.08 |