pyspark:FPgrowth

11 篇文章 0 订阅
8 篇文章 1 订阅

原理

https://blog.csdn.net/sunbow0/article/details/45602415

https://www.cnblogs.com/haozhengfei/p/c9f211ee76528cffc4b6d741a55ac243.html

代码

from pyspark import SparkConf
from pyspark.sql import SparkSession
from pyspark.ml.fpm import FPGrowth
import datetime
if __name__ == "__main__":
    t1=datetime.datetime.now()
    appname = "FPgrowth"
    master ="local[4]" 
    
    data_list=[[['r', 'z', 'h', 'k', 'p']]\
               ,[['z', 'y', 'x', 'w', 'v', 'u', 't', 's']]\
               ,[['s', 'x', 'o', 'n', 'r']]\
               ,[['x', 'z', 'y', 'm', 't', 's', 'q', 'e']]\
               ,[['z']]\
               ,[['x', 'z', 'y', 'r', 'q', 't', 'p']]]#数据集
    conf = SparkConf().setAppName(appname).setMaster(master)  #spark配置                
    spark=SparkSession.builder.config(conf=conf).getOrCreate()
    data=spark.createDataFrame(data_list,["items"])#将数据转为spark中的dataframe
    fp = FPGrowth(minSupport=0.5, minConfidence=0.8)#模型建立
    fpm  = fp.fit(data)#模型拟合
    fpm .freqItemsets.show(5)#在控制台显示前五条频繁项集
    assRule=fpm.associationRules#强关联规则
    assRuleDf=assRule.toPandas()#转为python中的dataframe  
    print('强关联规则:\n',assRuleDf)
    new_data = spark.createDataFrame([(["s", "t"], )], ["items"])#新的前项数据
    print('后项预测:\n',fpm.transform(new_data).first().prediction) #预测后项               
    spark.stop()#关闭spark
    t2=datetime.datetime.now()
    print('spent ts:',t2-t1)

运行结果:

注意:lift为提升度,表示在含有X的条件下同时含有Y的可能性与没有X这个条件下项集中含有Y的可能性之比:公式为confidence(artichok => cracker)/support(cracker) = 80%/50% = 1.6。该指标与置信度同样衡量规则的可靠性,可以看作是置信度的一种互补指标。 

如果对你有帮助,请点下赞,予人玫瑰手有余香!

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值