• 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

    脚本示例

    脚本代码

    1. data = np.array([
    2. ["A,B,C,D"],
    3. ["B,C,E"],
    4. ["A,B,C,E"],
    5. ["B,D,E"],
    6. ["A,B,C,D"],
    7. ])
    8. df_data = pd.DataFrame({
    9. "items": data[:, 0],
    10. })
    11. data = dataframeToOperator(df_data, schemaStr='items string', op_type='batch')
    12. fpGrowth = FpGrowthBatchOp() \
    13. .setItemsCol("items") \
    14. .setMinSupportPercent(0.4) \
    15. .setMinConfidence(0.6)
    16. fpGrowth.linkFrom(data)
    17. fpGrowth.print()
    18. fpGrowth.getSideOutput(0).print()

    脚本运行结果

    频繁项集输出:

    1. itemset supportcount itemcount
    2. 0 E 3 1
    3. 1 B,E 3 2
    4. 2 C,E 2 2
    5. 3 B,C,E 2 3
    6. 4 D 3 1
    7. 5 B,D 3 2
    8. 6 C,D 2 2
    9. 7 B,C,D 2 3
    10. 8 A,D 2 2
    11. 9 B,A,D 2 3
    12. 10 C,A,D 2 3
    13. 11 B,C,A,D 2 4
    14. 12 A 3 1
    15. 13 B,A 3 2
    16. 14 C,A 3 2
    17. 15 B,C,A 3 3
    18. 16 C 4 1
    19. 17 B,C 4 2
    20. 18 B 5 1

    关联规则输出:

    1. rule itemcount lift support_percent confidence_percent transaction_count
    2. 0 B=>A 2 1.000000 0.6 0.600000 3
    3. 1 B=>D 2 1.000000 0.6 0.600000 3
    4. 2 B=>C 2 1.000000 0.8 0.800000 4
    5. 3 B=>E 2 1.000000 0.6 0.600000 3
    6. 4 C=>A 2 1.250000 0.6 0.750000 3
    7. 5 C=>B 2 1.000000 0.8 1.000000 4
    8. 6 B,C=>A 3 1.250000 0.6 0.750000 3
    9. 7 A=>C 2 1.250000 0.6 1.000000 3
    10. 8 A=>B 2 1.000000 0.6 1.000000 3
    11. 9 A=>D 2 1.111111 0.4 0.666667 2
    12. 10 B,A=>D 3 1.111111 0.4 0.666667 2
    13. 11 C,A=>B 3 1.000000 0.6 1.000000 3
    14. 12 B,A=>C 3 1.250000 0.6 1.000000 3
    15. 13 C,A=>D 3 1.111111 0.4 0.666667 2
    16. 14 B,C,A=>D 4 1.111111 0.4 0.666667 2
    17. 15 D=>A 2 1.111111 0.4 0.666667 2
    18. 16 D=>B 2 1.000000 0.6 1.000000 3
    19. 17 A,D=>B 3 1.000000 0.4 1.000000 2
    20. 18 B,D=>A 3 1.111111 0.4 0.666667 2
    21. 19 C,D=>B 3 1.000000 0.4 1.000000 2
    22. 20 A,D=>C 3 1.250000 0.4 1.000000 2
    23. 21 C,D=>A 3 1.666667 0.4 1.000000 2
    24. 22 C,A,D=>B 4 1.000000 0.4 1.000000 2
    25. 23 B,A,D=>C 4 1.250000 0.4 1.000000 2
    26. 24 B,C,D=>A 4 1.666667 0.4 1.000000 2
    27. 25 E=>B 2 1.000000 0.6 1.000000 3
    28. 26 C,E=>B 3 1.000000 0.4 1.000000 2