10-06 09:37
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- Binary Search
- 백준
- Reference Type
- BFS
- 셀레니움
- Entity
- OOP
- selenium
- Polymolphism
- 자바
- Physical Scheme
- Inheritance
- Class
- zsh
- Mac
- Operator
- Entity Set
- 리눅스 기초
- systemd
- preprocessing
- X윈도우
- External Scheme
- Java
- literal
- X.org
- Unity
- python
- 리눅스 마스터 1급
- 리눅스
- dbms
Archives
- Today
- Total
Byeol Lo
[ADP] 4장 데이터 분석 - 연관 분석 본문
항목들 간에 조건-결과로 표현되는 패턴들을 발견하는 것을 연관 분석이라고 하며, 장바구니(market basket, 더 넓은 의미로 transaction이라고 해도 됨) 분석도 이러한 분석 기술을 이용한게 되겠다. 이런 분석을 잘한다면 마케팅에서 교차 판매나 다른 이벤트 등을 실행할 수 있을 것이다.
규칙에 있어서 기본 세가지 유형이 있다.
- Useful: 유용한 정보와 실행 가능한 통찰을 제공하는 규칙
- Trivial: 어떤 분야에 익숙한 사람이라면 이미 알고 있는 규칙
- Inexplicable: 새로운 정보이지만 고객 행동에 대한 명확한 설명이 없는 규칙
이런 규칙들을 찾아내서 다음 측정 지표를 써서 분석을 한다.
측정지표
- Support(지지도): 전체 transaction 중에 A item 이 발생할 비율 확률
$Support(A) = P(A)$
$Support(A \bigcup B) = Support(A ⇒ B) = P(A \bigcap B)$
이게 Support 와 확률 P의 표기를 좀 통일시켰으면 좋겠는데 어디에서는 Support(A ∪ B) = P(A ∩ B)을 쓰고, 어디는 Support(A → B) = P(A ∪ B)를 쓴다. 근데 지금 이 표기를 전부 다 쓰고 있다는 것이다.
이것에 대해 좀 더 자세히 아는 분은 댓글 부탁드립니다.
여기에서는 notation을 $Support (A ⇒ B) = Support( A \bigcup B ) = P(A \bigcap B)$를 쓴다. - Confidence(신뢰도): 전체 transaction 중에 item A가 발생했을때 item B가 발생할 비율, 확률
$Confidence(A ⇒ B) = \frac{Support(A \bigcup B)}{Support(A)}$
조건부 확률과 같다. - Lift(향상도):
$Lift(A ⇒ B) = \frac{P(B|A)}{P(B)} = \frac{P(A \bigcap B)}{P(A) P(B)} = \frac{Support(A \bigcup B)}{Support(A) \times Support(B)}$
항목 간의 상관관계를 평가하는 지표
1 초과: 두 품목이 서로 양의 상관관계
1: 두 품목이 서로 독립
1 미만: 두 품목이 서로 음의 상관관계 - Conviction:
$Conviction(A ⇒ B) = \frac{1 - Support(B)}{1 - Confidence(A ⇒ B} = \frac{P(A) P(Bᶜ)}{P(A \bigcup Bᶜ}$
두 아이템이 의존적일때, 즉 종속적일 때, A가 B 없이 나타날 확률, 실제로 A와 B 없이 나타나는 빈도를 비교하는 지표
Apriori Algorithm
최소 지지도를 갖는 연관규칙을 찾는 대표적인 방법중에 Apriori Algorithm이 있다. 최소 지지도 보다 큰 집합만을 대상으로 높은 지지도를 갖는 품목 집합을 찾게 된다.
- 최소 지지도를 설정
- 개별 품목 중에서 최소 지지도를 넘는 모든 품목을 찾음
- 2에서 찾은 개별 품목만을 이용해 최소 지지도를 넘는 2가지 품목 집합을 찾음
- 위의 두 절차에서 찾은 품목 집합을 결합하여 최소 지지도를 넘는 3가지 품목 집합을 찾음
- 반복적으로 수행해서 최소 지지도가 넘는 빈발품목 집합을 찾음
장점
- 탐색적 기법: if-then 형식의 조건 반응으로 표현되는 연관 분석의 결과를 이해하기 쉬움
- 강력한 비목적성 분석기법: 분석 방향이나 목적이 특별하게 없는 경우 목적변수가 없으므로 유용함
- 사용 편리한 분석 데이터의 형태: 거래 내용에 대한 데이터를 변환 없이 그대로 사용 가능
- 계산의 용이성: 분석을 위한 계산이 간단
단점
- 상당한 수의 계산과정: 품목 수가 증가하면 분석에 필요한 계산이 기하급수적으로 늘어남
Use Taxonomy - 항목들을 일반화 시켜 조합의 수를 줄일 수 있음
Use Pruning - 기준을 충족하지 않는 아이템이나 조합을 제거함 - 적절한 품목의 결정: 너무 세분화된 품목을 가지고 연관규칙을 찾으려고 하면 의미없는 분석 결과가 나옴
- 품목의 비율차이: 상대적으로 거래량이 적은 품목은 당연히 포함된 거래 수가 적으며, 규칙 발견시 제외되기가 쉬움
Process
- Transactions, minimum support 준비
- for( k = 1 ; k < n-1 ; k++)
- Transactions(T) 중에서 minimum support $s_min$ 을 넘으면서 항목이 k개인 것들을 찾음
- $C_k$에 대해 $L_k$을 다음과 같이 정의
$L_1 = \{ c \in C_1 | support(c) ≥ s_{min} \}$ - $L_1 \times L_1$ 의 항목에 대해서 $s_min$을 넘기는 transaction에 대해 $C_{k+1}$를 생성
- end
과정 중간중간에 필요하지 않은 subset을 제거하는 것을 pruning이라고 함.
- minimum confidence 준비
- 나온 L 집합들에 대한 가능한 모든 rule 생성
ex. L_3 = {{1, 2, 3}, {3, 6, 8}, {1, 4, 7}} 이라면,
나올 수 있는 규칙 들은 {1, 2} ⇒ {3}, {1, 3} ⇒ {2}, {2, 3} ⇒ {1}, {3, 6} ⇒ {8}, {3, 8} ⇒ {6}, {6, 8} ⇒ {3}, {1, 4} ⇒ {7}, {1, 7} ⇒ {4}, {4, 7} ⇒ {1}
여기서 {1} ⇒ {2, 3} 을 사용하지 않는 이유: confidence({1, 2} ⇒ {3}) ≥ confidence({1} ⇒ {2, 3}) 이기 때문에 가장 큰걸 보고 가장큰게 minimum confidence 를 넘지 않으면 전부 버리는 것이 더 빠르고 나음. - 각 rule에 대한 신뢰도 Confidence 계산하여 minimum confidence를 넘기는 규칙만을 남김
- lift, conviction 를 통해 연관 규칙에 대한 평가 실행
'AI > ADP' 카테고리의 다른 글
[ADP] 4장 데이터 분석 - 비정형 데이터 마이닝, 텍스트 마이닝 (0) | 2024.08.06 |
---|---|
[ADP] 4장 데이터 분석 - 군집 분석 (0) | 2024.08.06 |
[ADP] 4장 데이터 분석 - Model Evaluation (0) | 2024.08.06 |
[ADP] 4장 데이터 분석 - Ensemble (0) | 2024.08.03 |
[ADP] 4장 데이터 분석 - Decision Tree (0) | 2024.08.03 |
Comments