als算法参数_Pyspark推荐算法实战(一)

作者:丁永兵

作者简介:NLP、推荐算法

1. 前言

由于最近转向商品推荐的工作,因此从本文起,开始介绍一些利用pyspark在推荐算法中的具体应用。

目前最新版本的spark已经出到2.4.5,我们主要使用的还是2.3版本,所以后续涉及代码开发,全部基于2.3.4版本。

首先看下pyspark的算法包内容,pyspark算法包主要有ml和mllib两个库,这 两个库从图一看到,整体内容基本一致,都能满足我们日常的算法需求,不过从2.0开始,mllib主要进行维护状况,不再新增功能,加上ml库与scikit-learn使用非常类似,对于经常使用后者建模的同学来说,ml能够非常快速入手,建议更多时候使用ml算法包。

如图所示,ml中提供fpm:频繁项挖掘和recommendation 两个算法包,帮助快速落地推荐算法,下面就这两块内容进行详细介绍,并进行代码开发实现。

fb8d3ff5f5a9f505d274901a835dba57.png

图一 pyspark算法工具包内容

2. pyspark中频繁项挖掘算法实现

fpm下主要包含两类算法:FPGrowth和PrefixSpan,PrefixSpan算法主要挖掘序列模式的数据,其记录元素具有时间上的先后关系,与我们常见的购物篮分析数据不是同一个场景,在此就不再赘述。

FPGrowth是韩嘉炜等人于2000年提出的一种关联分析算法,其核心思想是构建一颗频繁模式树。

相比较于Apriori算法,FPGrowth计算速度大大优于前者,前者需要根据项数多次扫描数据库,直到没符合要求的项集存在为止,而FPGrowth仅需扫描两次,计算量大大降低:

  • 第1次扫描获取各个元素的频率,去掉不满足支持度要求的项,并对符合的元素从大到小排序;

  • 第2次扫描建立一颗FP-Tree树。

针对算法具体细节,有兴趣同学可以搜索些文章了解下,比较容易理解,不再说明了,下面就FPGrowth的实际使用进行代码说明。

先看下官网给出的模型操作示例代码

>>> from pyspark.sql.functions import split>>> data = (spark.read...     .text("data/mllib/sample_fpgrowth.txt")...     .select(split("value", "\s+").ali
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值