Spark FP-Growth
FP-Growth 학습 알고리즘 설명 및 파라미터 설명서 입니다.
개요
FP-Growth((Frequent-Pattern Growth) 알고리즘은 데이터 그룹간에 빈번하게 발생하는 패턴을 찾는 알고리즘으로 연관규칙분석(Apriori) 분야에서 사용됩니다. (연관규칙분석은 “장바구니 분석” 이라는 별칭이 있습니다)
데이터로부터 자주 발생하는 패턴(빈발 패턴)을 찾아, 소비자가 구매하려는 아이템 옆에 빈발 패턴으로 묶인 아이템들을 같이 노출하여 구매확률을 높이는 마케팅 전략으로 많이 이용합니다.
설명
FP-Growth 모델을 만들고 input data frame을 모델에 적용시킵니다. FP-Growth 모델 학습에 필요한 파라미터들을 지정할 수 있으며 지정하지 않을 시 Default 값으로 설정됩니다.
Examples
구매 목록에 관한 데이터로 구매 transaction(TRANSATION_ID) 1건 당 구매한 아이템 목록(ITEM_LIST)입니다.
데이터의 형태
TRANSATION_ID |
ITEM_LIST |
---|---|
1 |
Lassi,Coffee Powder,Butter,Yougurt,Ghee,Cheese |
2 |
Ghee,Coffee Powder |
3 |
Lassi,Tea Powder,Butter,Cheese |
,,, |
fit fpgrowth - 학습모델 생성
... | fit fpgrowth FEATURES 아이템컬럼명 minSupport=0.1 minConfidence=0.1 into 저장할모델이름
example )
... | fit fpgrowth FEATURES ITEM_LIST minSupport=0.1 minConfidence=0.1 into EDU_MODEL_FPGrowth_01
items |
freq |
space |
antecedent |
consequent |
confidence |
---|---|---|---|---|---|
[‘Coffee Powder’, ‘Ghee’] |
2578 |
| |
[‘Bread’] |
[‘Panner’] |
0.46498 |
[‘Butter’, ‘Sugar’] |
2571 |
| |
[‘Yougurt’] |
[‘Coffee Powder’] |
0.46429 |
[,,] |
| |
[..] |
[..] |
- items : 목록패턴
- freq : items 가 나온 빈도수
- antecedent : 선행 item
- consequent : 결과 item
- confidence : 결과 item 의 신뢰도
predict : 생성한 학습 모델을 통해 신규데이터 또는 test 데이터를 예측하는 명령어
... | predict 학습모델소유자.학습모델이름 아이템컬럼명
example )
... | predict demo.EDU_MODEL_FPGrowth_01 ITEM_LIST
TRANSATION_ID |
ITEM_LIST |
prediction |
---|---|---|
100 |
Yougurt,Milk,Sugar |
[Butter, Panner, Cheese, Tea Powder, Sweet, Bread, Coffee Powder, Ghee, Lassi] |
1206 |
Sugar,Butter,Milk |
[Lassi, Coffee Powder, Sweet, Bread, Ghee, Yougurt, Cheese, Tea Powder, Panner] |
Parameters
... | fit FPGrowth FEATURES fields INTO_model
이름 |
설명 |
필수/옵션 |
---|---|---|
FEATURES |
학습에 사용될 특징 column을 입력 받습니다. |
필수 |
fields |
특징 column들의 이름입니다. |
필수 |
params |
알고리즘 setting 파라미터들입니다. |
옵션 |
INTO_model |
|
필수 |
minSupport |
frequent item에 대한 threshold값 입니다. |
옵션 |
minConfidence |
pattern 에 대한 threshold값 입니다. |
옵션 |
numPartitions |
partition 갯수 입니다. |
옵션 |
Parameters BNF
SparkFPGrowth_command : FEATURES fields params INTO_model
fields : field
| fields COMMA field
field : WORD
params : param
| params param
param : WORD EQUALS WORD
| WORD EQUALS DOUBLE
INTO_model : INTO WORD
WORD : \w+
COMMA : \,
FEATURES : FEATURES | features
INTO : INTO
EQUALS : \=
DOUBLE : [-+]?[0-9]+(\.([0-9]+)?([eE][-+]?[0-9]+)?|[eE][-+]?[0-9]+)
params : minSupport=0.3, minConfidence=0.8, numPartitions=None