【第十八章:Sentosa_DSML社区版-机器学习之协同过滤】
1.算子介绍
协同过滤是推荐系统中常用的一种方法。该算法旨在填补用户-产品关联矩阵中缺少的项。在算法中,用户和产品都是通过一组少量的潜在因素描述,这些潜在因素可以用于预测用户-产品关联矩阵中缺少的项。
2.算子类型
机器学习/推荐算子
3.算子属性说明
|---------------------|---------------|----|---------|---------|--------------------|---------------------|
| 属性 | 页面显示名称 | 选项 | 类型 | 默认值 | 约束规则 | 属性说明 |
| top_n | 推荐数量 | 必填 | Int | 10 | 大于0的整数 | 推荐数量 |
| recommend_type | 推荐类型 | 必选 | String | topUser | 单选:topUser,topItem | 推荐类型 |
| cold_start_strategy | 冷启动策略 | 必选 | String | nan | 单选:nan drop | cold_start_strategy |
| nonnegative | 是否使用非负约束 | 必选 | Boolean | 否 | 单选:true false | 是否应用非负性约束 |
| implicit_prefs | 是否使用隐式偏好 | 必选 | Boolean | 否 | 单选:true false | 是否使用隐式偏好 |
| alpha | 隐式偏好的alpha | 必填 | Double | 1.0 | >=0.0 | 隐式偏好的alpha |
| reg_param | 正则化系数 | 必填 | Double | 0.1 | >=0 | 正则化系数 |
| user_col | 用户列名 | 必填 | String | user | 单选:前继节点的所有列名 | 用户id的列名 |
| num_user_blocks | user_blocks数量 | 必填 | Int | 10 | >0 | user_blocks数量 |
| item_col | item列名 | 必填 | String | item | 单选:前继节点的所有列名 | item ids的列名参数 |
| num_item_blocks | item_blocks数量 | 必填 | Int | 10 | >0 | item_blocks数量 |
| rating_col | 评分列名 | 必填 | String | rating | 单选:前继节点的所有列名 | ratings列名参数 |
| rank | 矩阵分解的秩的参数 | 必填 | Int | 10 | >=0 | 矩阵分解的秩的参数 |
| max_iter | 最大迭代次数 | 必填 | Int | 10 | >0 | 最大迭代次数 |
4.算子使用介绍
(1)算子初始化
参考公共功能算子初始化操作
(2)算子属性设置
协同过滤算子的属性设置如图所示
协同过滤算子属性设置
(3)算子的运行
首先通过数据读入算子读取数据,中间可以接任意个数据处理算子(例,行处理,列处理等),然后接一个协同过滤算子,后可接任意个数据处理算子,再接图表分析算子或数据写出算子(不能接评估算子),形成算子流执行。
协同过滤模型算子流
模型的运行结果如图所示
协同过滤模型的运行结果
为了非商业用途的科研学者、研究人员及开发者提供学习、交流及实践机器学习技术,推出了一款轻量化且完全免费的Sentosa_DSML社区版。以轻量化一键安装、平台免费使用、视频教学和社区论坛服务为主要特点,能够与其他数据科学家和机器学习爱好者交流心得,分享经验和解决问题。文章最后附上官网链接,感兴趣工具的可以直接下载使用
Sentosa_DSML算子流开发视频