함께 나타나는 항목의 빈발 패턴 찾기
Frequent Pattern Growth(FP-Growth)는 여러 거래나 사건에서 반복되는 항목 집합을 찾습니다. 장바구니 분석, 추천, 생물정보학, 네트워크 트래픽, 고객 속성 분석과 설명 가능한 AI 등에 사용할 수 있습니다.
Pipeline Builder의 Frequent pattern growth는 배치에서 지원합니다. 항목 배열 열과 최소 등장 비율을 받아 그 비율 이상으로 나타나는 패턴을 출력합니다. 자주 함께 나타난다는 결과 자체가 인과관계나 통계적 유의성을 증명하는 것은 아닙니다.
입력 계약
| 인자 | 유형과 의미 |
|---|---|
| Input dataset | 거래별 항목을 가진 Table입니다. |
| Items column | Array<String> 열입니다. 한 거래에서 함께 나타난 항목들을 담습니다. |
| Minimum support | Double 값으로 지정하는 최소 등장 비율입니다. |
배열과 null의 세부 사례는 FP-Growth 변환 참조에서 확인할 수 있습니다.
가상 장바구니 예제
다음 다섯 거래에서 함께 구매한 상품 조합을 찾는다고 가정합니다.
| transaction_id | products_purchased |
|---|---|
| 1 | [Bread, Butter, Milk] |
| 2 | [Bread, Butter] |
| 3 | [Bread, Diapers, Beer] |
| 4 | [Milk, Diapers, Beer, Butter] |
| 5 | [Bread, Butter, Diapers] |
Items column을 products_purchased, Minimum support를 0.6으로 설정합니다. 전체 거래의 60% 이상, 이 예시에서는 다섯 거래 중 최소 세 거래에 나타나는 패턴만 남습니다.
이 입력과 조건의 결과는 다음과 같습니다.
| pattern | pattern_occurrence | total_count |
|---|---|---|
| [Bread] | 4 | 5 |
| [Butter] | 4 | 5 |
| [Bread, Butter] | 3 | 5 |
| [Diapers] | 3 | 5 |
pattern은 항목 집합이고 pattern_occurrence는 그 집합이 나타난 거래 수, total_count는 전체 거래 수입니다. Bread와 Butter의 조합은 세 번 등장하여 support가 3/5입니다.
이런 패턴을 상품 배치나 함께 구매하는 상품의 프로모션 후보로 활용할 수 있습니다. 실제 변경의 효과를 판단할 때는 빈도 외에 업무 맥락과 별도의 효과 평가도 함께 고려합니다.