zoukankan      html  css  js  c++  java
  • Spark 2.2.0 文档中文版 Collaborative Filtering 协同过滤 JAVA推荐系统

      协同过滤常用于推荐系统,这项技术旨在填补 丢失的user-item关联矩阵 的条目,spark.ml目前支持基于模型的协同过滤(用一些丢失条目的潜在因素在描述用户和产品)。spark.ml使用ALS(交替最小二乘法)去学习这些潜在因素。在spark.ml中的实现有以下参数:

    numBlocks:块的数量,user和item将被分成多少块,以并行计算。(默认10)

    ranK:模型隐含因素的个数。(默认10)

    maxIter:模型的最大迭代次数。(默认10)

    regParam :ALS的正则化参数。(默认1.0)

    implicitPrefs :使用显式反馈还是隐式反馈。(默认false,即显式反馈)

    alpha:信心权重所应达到的基准线。(默认1.0)

    nonnegative :是否使用非负数的约束。(默认false)

      注意:基于dataFrame - API的ALS目前只支持整数型的userID和itemID,其他数字类型也支持,但是取值范围必须在整数之内。

    显式反馈VS隐式反馈

      标准的基于矩阵分解的协同过滤方法对待user-item矩阵的条目项 是显式地给出user对item的偏好,例如,用户给电影评级。

      而现实生活中常见案例是只能有隐式反馈(例如:视图,点击鼠标,购买,喜欢,分享……)。在spark.ml中使用的方法是:对隐式反馈数据集的协同过滤。实际上,这种方法不是直接对数据矩阵进行建模,而是将数据视为代表用户行为意愿强度的数字(例如点击的次数或某人累积观看电影的时间)。然后,这些数字与观察到的用户偏好的置信水平相关,而不是给予项目的明确评级。 然后,该模型尝试找到可用于预测用户对项目的预期偏好的潜在因素。

     
  • 相关阅读:
    Linux基本知识
    Linux 基金会发起开源创新计划,为全球对抗 COVID-19 提供基础架构
    单片机程序设计有十层功力,你现在在哪一层?
    C语言太复杂?CUDA Python也能实现并行计算加速!
    Java 基础 子类赋值给父类问题
    SpringBlade AVUE 拖拽排序
    java 基础 Long类型 判断是否相等
    数字量输入模块和模拟量输入模块的区别是什么?
    模拟量输入模块和模拟量输出模块的应用范围
    NB-IOT关键技术分析
  • 原文地址:https://www.cnblogs.com/taoshiqian/p/7206380.html
Copyright © 2011-2022 走看看