[RS/PsuedoLab] Chapter 02. Association analysis & Collaborative Filtering(WIP...)

yijin3018·2022년 4월 4일
0

RS/PsuedoLab

목록 보기
2/2
post-thumbnail

* 가짜연구소 추천시스템 톺아보기 스터디 활동을 기반으로 작성된 포스트입니다.

연관 분석(Association analysis)

  • 특정 사건 발생 시, 함께 빈번하게 발생하는 다른 사건의 규칙

    • Transaction data
    • Apriori, FP-growth
  • ex) 기저귀가 판매됐을 때 맥주가 같이 판매될 때의 규칙을 찾는 것

  • 지지도(support): 전체 거래 중 A, B 동시 거래 비율

    • Support=P(AB)Support = P(A∩B)
  • 신뢰도(Confidence) : A가 포함된 거래 중 A, B 동시 거래 비율

    • Confidence=P(BA)=P(AB)/P(A)Confidence = P(B|A) = P(A∩B) / P(A)
    • 신뢰도 높을수록 유용한 규칙!
  • 향상도(Lift) : A가 주어지지 않았을 때 B의 확률 대비 A가 주어졌을 때 B의 확률 증가 비율

    • Lift=P(BA)/P(B)Lift = P(B|A) / P(B)
    • A, B 독립이면 Lift=1Lift = 1
    • Lift>1Lift > 1이면 B만 구매할 확률보다 A, B 동시 구매 확률이 더 높다
    • Lift가 1보다 커질수록 연관성 높아진다.
  • 장단점

    • 장점
      • 간편한 분석 계산
      • 강력한 비지도학습 기법
    • 단점
      • 데이터 크기 커질수록 계산량 급증
      • 세분화된 품목으로 연관규칙을 찾으려면 무의미한 분석결과 도출 가능
      • 거래량 적으면 규칙 발견 시 제외되기 쉬움
  • 연관분석 절차
    1) 최소지지도, 최소신뢰도 설정해 의미없는 규칙 제외하고 모든 연관 규칙을 탐색한다.
    2) 향상도(lift)값 내림차순 정렬 - 큰 향상도는 연관성 높고 유의미하다는 의미!

  • 예시

    Transaction #Items
    1{맥주, 우유}
    2{빵, 기저귀, 맥주, 계란}
    3{우유, 기저귀, 맥주, 콜라}
    4{빵, 우유, 기저귀, 맥주}
    5{빵, 우유, 기저귀, 콜라, 계란}
    6{콜라, 계란, 맥주}
    7{우유, 계란, 빵}
    8{빵, 우유, 기저귀, 맥주, 계란}
    9{기저귀, 계란, 빵}
    10{기저귀, 맥주}

    A: 콜라, B: 우유 {콜라} → {우유}

    • P(A)=0.3,P(B)=0.6P(A) = 0.3, P(B) = 0.6
    • Support=P(AB)=0.2Support = P(A∩B) = 0.2
    • Confidence=P(BA)=P(AB)/P(A)=0.2/0.3=0.66Confidence = P(B|A) = P(A∩B) / P(A) = 0.2 / 0.3 = 0.66
    • Lift=P(BA)/P(B)=P(AB)/(P(A)P(B))=0.2/(0.30.6)=1.11Lift = P(B|A)/P(B) = P(A∩B) / (P(A)*P(B)) = 0.2 / (0.3 * 0.6) = 1.11
    • 콜라와 우유는 유의미한 관계 (∵ Lift>1Lift > 1)

Apriori

Support(A)>=Support(A,B)Support(A) >= Support(A, B)

  • 최소 지지도 충족 못하는 아이템을 포함하는 경우 후보에서 제외한다.

  • 크기가 1인 아이템셋부터 시작

  • 크기 1씩 증가시키며 데이터 조합을 만들면서 해당 조합의 support 확인

  • 모든 itemset들이 min. support 만족하거나 공집합이 될때까지 진행

  • 최종 집합 속한 item들이 min. support 만족하는 최종 itemset이 된다

  • 예시 (Min.support=2Min. support = 2)

    Transaction #Items
    1{1,3,4}
    2{2,3,5}
    3{1,2,3,5}
    4{2,5}
    5{1,3,5}

    Itemset(len=1)SupportItemset(len=2)SupportItemset(len=3)SupportItemset(len=4)Support
    {1}3{1,2}1{1,3,5}2{1,2,3,5}1
    {2}3{1,3}3{2,3,5}2
    {3}4{1,5}2
    {4}1{2,3}2
    {5}4{2,5}3
    {3,5}3

  • Min. Support 만족하는 아이템셋

    Itemsetsupport
    {1,3,5}2
    {2,3,5}2
    • {1,3,5}의 min. confidence = 0.6
      • {1,3} → {5} : confidence=support(1,3,5)/support(1,3)=2/3>0.6confidence = support(1,3,5) / support(1,3) = 2 / 3 > 0.6
        • Rule Selected
      • {3} → {1,5} : confidence=support(1,3,5)/support(3)=2/4<0.6confidence = support(1,3,5) / support(3) = 2 / 4 < 0.6
        • Rule Rejected!!

FP-Growth

profile
💻 For Computer Science..

0개의 댓글