- FpGrowth
- 功能介绍
- 参数说明
- 脚本示例
- 脚本代码
- 脚本运行结果
FpGrowth
功能介绍
FP Growth(Frequent Pattern growth)算法是一种非时序的关联分析算法. 它利用FP tree生成频繁项集和规则,效率优于传统的Apriori算法。
参数说明
| 名称 | 中文名称 | 描述 | 类型 | 是否必须? | 默认值 | |
|---|---|---|---|---|---|---|
| itemsCol | 项集列名 | 项集列名 | String | ✓ | ||
| minSupportCount | 最小支持度数目 | 最小支持度目,当取值大于或等于0时起作用,当小于0时参数minSupportPercent起作用 | Integer | -1 | ||
| minSupportPercent | 最小支持度占比 | 最小支持度占比,当minSupportCount取值小于0时起作用,当minSupportCount大于或等于0时该参数不起作用 | Double | 0.02 | ||
| minConfidence | 最小置信度 | 最小置信度 | Double | 0.05 | ||
| maxPatternLength | 最大频繁项集长度 | 最大频繁项集长度 | Integer | 10 | ||
| maxConsequentLength | 最大关联规则后继长度 | 最大关联规则后继(consequent)长度 | Integer | 1 | ||
| minLift | 最小提升度 | 最小提升度 | Double | 1.0 |
脚本示例
脚本代码
data = np.array([["A,B,C,D"],["B,C,E"],["A,B,C,E"],["B,D,E"],["A,B,C,D"],])df_data = pd.DataFrame({"items": data[:, 0],})data = dataframeToOperator(df_data, schemaStr='items string', op_type='batch')fpGrowth = FpGrowthBatchOp() \.setItemsCol("items") \.setMinSupportPercent(0.4) \.setMinConfidence(0.6)fpGrowth.linkFrom(data)fpGrowth.print()fpGrowth.getSideOutput(0).print()
脚本运行结果
频繁项集输出:
itemset supportcount itemcount0 E 3 11 B,E 3 22 C,E 2 23 B,C,E 2 34 D 3 15 B,D 3 26 C,D 2 27 B,C,D 2 38 A,D 2 29 B,A,D 2 310 C,A,D 2 311 B,C,A,D 2 412 A 3 113 B,A 3 214 C,A 3 215 B,C,A 3 316 C 4 117 B,C 4 218 B 5 1
关联规则输出:
rule itemcount lift support_percent confidence_percent transaction_count0 B=>A 2 1.000000 0.6 0.600000 31 B=>D 2 1.000000 0.6 0.600000 32 B=>C 2 1.000000 0.8 0.800000 43 B=>E 2 1.000000 0.6 0.600000 34 C=>A 2 1.250000 0.6 0.750000 35 C=>B 2 1.000000 0.8 1.000000 46 B,C=>A 3 1.250000 0.6 0.750000 37 A=>C 2 1.250000 0.6 1.000000 38 A=>B 2 1.000000 0.6 1.000000 39 A=>D 2 1.111111 0.4 0.666667 210 B,A=>D 3 1.111111 0.4 0.666667 211 C,A=>B 3 1.000000 0.6 1.000000 312 B,A=>C 3 1.250000 0.6 1.000000 313 C,A=>D 3 1.111111 0.4 0.666667 214 B,C,A=>D 4 1.111111 0.4 0.666667 215 D=>A 2 1.111111 0.4 0.666667 216 D=>B 2 1.000000 0.6 1.000000 317 A,D=>B 3 1.000000 0.4 1.000000 218 B,D=>A 3 1.111111 0.4 0.666667 219 C,D=>B 3 1.000000 0.4 1.000000 220 A,D=>C 3 1.250000 0.4 1.000000 221 C,D=>A 3 1.666667 0.4 1.000000 222 C,A,D=>B 4 1.000000 0.4 1.000000 223 B,A,D=>C 4 1.250000 0.4 1.000000 224 B,C,D=>A 4 1.666667 0.4 1.000000 225 E=>B 2 1.000000 0.6 1.000000 326 C,E=>B 3 1.000000 0.4 1.000000 2
