-
[R 데이터 분석] 연관성 분석 (Association Rules), 장바구니 분석머신러닝 with R 2019. 9. 8. 15:40
연관성 분석이란?
장바구니 분석 (Market Basket Analysis)이라고 불리며, 데이터를 통해 어떤 상품과 어떤 상품이 함께 팔리는 가를 분석함으로써 경향성을 파악한다.
이러한 연관성 분석은 매장 상품의 배치를 변경하거나, 특정 상품에 대한 묶음 판매, 혹은 이벤트나 쿠폰 등을 발행할 때 활용할 수 있다. 온라인에서는 추천 상품을 노출하는 등 다양한 마케팅 전략으로 사용될 수 있다.
연관성 분석을 통해 "연관규칙"을 생성하는데 조건과 반응 (if-then) 형식으로 규칙을 생성한다.
if-then 규칙은 쉽게 예를 들어, "라면을 구매하는 사람의 15%가 동시에 치즈를 구매한다"라는 규칙을 말한다.
사전에 target 변수를 선택하지 않는 비지도 학습이며, 판매된 상품에 대한 분석을 실시함으로써 생성된 규칙에서 우리가 원하는 상품에 대한 결과를 추출하는 방식이다.
연관성 규칙의 예를 더 살펴 보면,
- 바비인형을 구매하는 월마트 고객들은 60%의 확률로 세 종류의 캔디바 중 하나를 함께 구매할 확률이 높다.
- 대형 가전제품을 구매하는 고객들은 보수 계약을 구매할 가능성이 매우 높다.
- 새로운 하드웨어 스토어를 개점하면 흔하게 팔리는 물건 중 하나는 변기 세정제다.
등이 있다. 같이 팔릴 가능성이 높은 상품을 알게 된다.
연관성 규칙의 종류
- 행동 가능한 규칙: 룰의 의미가 이해되고 실행이 바로 가능한 정보를 포함
- 물과 라면, 기저귀와 맥주 등
- 사소한 규칙: 이미 다 알고 있는 규칙 생성 (활용적 관점에서는 의미가 없을 수 있으나 규칙의 신뢰성 확인 가능)
- 삼겹살과 상추쌈, 우유와 시리얼, 맥주와 소주 등
- 설명 불가능한 규칙: 설명되지 않고 실제 행동을 취할 수 없는 규칙
- 새로운 하드웨어 스토어를 개점 --> 경첩
- 허리케인 --> 딸기맛 롤리팝 사탕
연관 규칙의 평가
- 지지도 (Support): 전체 중 어떤 패턴의 비중을 확인. 교집합 부분이라고 할 수 있으며 대칭적이다.
- 신뢰도 (Confidence) : 조건부 확률. A 상품을 샀을 때 B 상품을 살 조건부 확률이라고 할 수 있다. 비대칭적으로 (A->B의 확률과 B->A의 확률은 다르다.)
- 향상도 (Lift or Improvement) : 규칙이 우연히 일어날 가능성 대비 얼마나 나은 효과를 보이는지에 대한 척도이다. 우연히 일어난 것인지에 대해 확인 가능하다. 향상도는 적어도 1보다 좋아야 함.
연관성 분석의 예
상점 POS 거래 데이터의 예
연관 규칙의 평가
[오렌지 주스 -> 탄산 음료]에 대해 연관 규칙을 평가하자면
지지도 (support)
- Support (오렌지 주스 -> 탄산음료 ) = P (오렌지 주스 ∩ 탄산음료)
- (두 거래를 동시에 포함하는 거래수) / (전체 거래수)
- 대칭적: support (오렌지 주스 -> 탄산음료 ) = support (탄산음료 -> 오렌지 주스 )
- support (오렌지 주스 -> 탄산음료) = 2/5 = 40%
신뢰도 (confidence)
- Confidence(오렌지 주스 -> 탄산음료) = P(탄산음료 | 오렌지주스) = P (오렌지 주스 ∩ 탄산음료) / P(오렌지 주스) = support / p(오렌지 주스)
- (두 거래를 동시에 포함하는 비율) / (오렌지 주스만 구매한 비율)
- 오렌지 주스를 사고, 탄산음료를 살 조건부 확률과 같음
- 비 대칭적: confidence (탄산 음료 -> 오렌지 주스) ≠ confidence (오렌지 주스 -> 탄산음료)
- confidence (오렌지 주스 -> 탄산음료) = (2/5) / (4/5) = 1/2
- confidence (탄산음료 - > 오렌지 주스) = (2/5) / (3/5) = 2/3
향상도 (lift)
- lift (오렌지 주스 -> 탄산음료) = P(탄산음료 | 오렌지주스) / P(탄산음료) = confidence / p(탄산음료)
- 탄산음료만 구매한 비율에 비해 오렌지 주스와 탄산음료를 함께 구매한 고객의 비율이 몇 배 인가?
- 탄산음료를 샀을 때 오렌지 주스를 살 조건부 확률과 같음
- P (탄산음료 | 오렌지 주스) = confidence (오렌지 주스 -> 탄산음료) = 1/2
- P (탄산음료) = 3/5
- Lift = (1/2) / (3/5) = 0.83
- 향상도는 적어도 1보다는 좋아야 함.
좋은 연광성 규칙이란?
- 최소한의 지지도 만족
- 신뢰도는 높을수록 좋음
- 향상도는 높을 수록 좋으며 적어도 1보다 커야 함.
연관규칙을 생성하는 데에 중요한 고려 사항
- 알맞은 물품들의 집합 (상세 수준)을 찾아야 함
- 상품 계층도를 통한 상품의 일반화
- 수천, 혹은 수만의 물품들로부터 발생하는 실질적인 제약들을 극복해야 함.
- 상품이 1만 개일 경우? 2개 조합 -> 5천만 가지 / 3개 조합 -> 1억 개...
[참고]
실무에 써먹는 머신러닝 with R
반응형'머신러닝 with R' 카테고리의 다른 글
[R 데이터 분석] 분류모형, 서포트 벡터 머신 (SVM) 분석 (1) 2019.09.18 [R 데이터 분석] 최근접 이웃 (K-Nearest Neighbor, KNN) 분석 (0) 2019.09.15 [R 데이터 분석] 밀도기반 군집분석 (DBSCAN, Density-Based Spatial Clustering of Applications with Noise) (0) 2019.09.06 [R 데이터분석] k - 평균(k-means) 군집 분석 (0) 2019.09.02 [R 데이터 분석] 계층적 군집분석 (0) 2019.08.31