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中使用的方法是:对隐式反馈数据集的协同过滤。实际上,这种方法不是直接对数据矩阵进行建模,而是将数据视为代表用户行为意愿强度的数字(例如点击的次数或某人累积观看电影的时间)。然后,这些数字与观察到的用户偏好的置信水平相关,而不是给予项目的明确评级。 然后,该模型尝试找到可用于预测用户对项目的预期偏好的潜在因素。

     
  • 相关阅读:
    蓝桥杯算法训练 区间k大数查询
    【模板】快读
    [ACM] hdu 2544 最短路(dijkstra算法)
    [ACM] hdu 3791 二叉搜索树
    [ACM] hdu 2141 Can you find it? (二分查找)
    [ACM] hdu 2025查找最大元素(水题)
    [ACM] hdu 1232 畅通工程(并查集)
    [ACM] hdu 1022 Train Problem I(栈的使用)
    [ACM] hdu 2857 Mirror and Light (对称点+两条直线的交点)
    [ACM] hdu 爆头(点到直线距离)
  • 原文地址:https://www.cnblogs.com/taoshiqian/p/7206380.html
Copyright © 2011-2022 走看看