더북(TheBook)

4. 연관 규칙 분석 결과를 필터링해보기

# itemsets의 제품 개수에 따른 필터링을 위해 length 열을 추가
# 결과를 frequent_itemsets라는 이름으로 생성
>>> frequent_itemsets = apriori(df, min_support = 0.6, use_colnames = True)
>>> frequent_itemsets['length'] = frequent_itemsets['itemsets'].apply(lambda x: len(x))   # length 추가
>>> frequent_itemsets
   support                itemsets  length
------------------------------------------
0      0.6                 (Apple)       1
1      0.8                 (Beans)       1
2      0.6                (Cookie)       1
3      0.8                  (Eggs)       1
4      0.6                  (Milk)       1
5      0.6                (Yogurt)       1
6      0.6           (Eggs, Apple)       2
7      0.6         (Cookie, Beans)       2
8      0.6           (Eggs, Beans)       2
9      0.6         (Yogurt, Beans)       2
10     0.6          (Cookie, Eggs)       2
11     0.6   (Eggs, Cookie, Beans)       3

# 필터링: 패턴 내 아이템은 두 개이고, 최소 지지도는 60% 이상인 패턴만 필터링
# frequent_itemsets에서 특정 조건을 만족시키는 행들을 선택
>>> frequent_itemsets[(frequent_itemsets['length'] == 2) & (frequent_itemsets['support'] >= 0.6)]
   support         itemsets   length
------------------------------------
6      0.6     (Eggs, Apple)       2
7      0.6   (Cookie, Beans)       2
8      0.6     (Eggs, Beans)       2
9      0.6   (Yogurt, Beans)       2
10     0.6    (Cookie, Eggs)       2
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.