zoukankan      html  css  js  c++  java
  • 第六章 【3】基于Hadoop-Mapreduce-基于用户的行为数据信息,解决冷启动推荐问题

    冷启动推荐介绍

    冷启动又分用户冷启动、物品冷启动、文章冷启动等,本文主要是以在没有用户行为数据的情况下进行物品的推荐;即实现基于区域物品推荐

    案例数据

    用户ID 物品ID 经度 纬度
    1,WP1,116.676381,23.36102
    如何进行新注册用户物品推荐,主要以kmeans聚类算法进行实现,kmeans典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大;
    聚类可以应用到很多的场景: 冷启动, 用户画像(兴趣画像), 区域热榜

    实现方式和对应实现步骤

    • 确定聚类的个数K

      1. 聚类的个数可以跟产品或者运营
      2. 轮廓系数: 评价聚类个数的好坏
        当文本类别未知的时候,可以选择轮廓系数作为聚类性能的评估指标,聚类系数的取值范围是[-1, 1]. 取值越接近1说明聚类的性能越好。相反-1.会更差
    • 标准化,归一化
      归一化可以消除量纲对最终结果的影响,如:两个人的体重相差10KG, 身高相差0.5cm,在衡量两个人的差别的时候,是不是把身高的差距完全遮盖了
      归一化:把数据映射到[0,1] (x-min)/(max-min)
      问题:最大值或者最小值很容易受到异常点的异常点的影响,所以效果会出现问题
      标准化:z-score (x-均值)/方差
      该方法适用于样本的最大值和最小值未知的情况,或者说超出取值范围的离群数据
      以上需要注意异常数据

    • 初始化聚类中心(如何优化聚类中心需要进一步思考)
      1、随机选100个用户作为初始的聚类中心(可以通过mapduce进行实现)
      2、kmeans++算法优化随机初始聚类中心,核心初始的聚类中心之间的距离尽量可能的远

    • 计算所有样本与聚类中心的距离并进行归类(可以通过mapduce进行实现)
      1、每一个样本数据需要与每个聚类中心进行计算(样本经度-聚类中心点经度)平方,(样本维度-聚类中心点维度)平方取最近为距离聚类中心ID(以最近距离为依据)

    • 更新聚类中心
      1、通过mapduce进行计算样品数据所属每个聚类中心ID平均值
      2、更新聚类中心数据,聚类中心数量不变量

    • 迭代终止条件,不满足继续4,5步骤,否则终止
      1、新聚类中心与旧聚类中心相差值是否达到预设阀值
      2、迭代次数是否满足设定阀值

    • 统计每个聚类中心热门物品
      1、通过mapreduce进行计算样本数据以聚类中心id进行汇总

    • 每个聚类中心内部物品进行排序
      1、通过mapreduce进行每个聚类中心内部物品排序
      2、可以把每个聚类中心数据对应物品进行存储到关系型数据等

    • 推荐数据应用(冷启动)
      1、根据用户经度、维度坐标查找聚类中心最近并做物品的推荐

  • 相关阅读:
    Centos 7 安装shellcheck
    cunit环境搭建
    flex序列号和破解
    windows下python SSH-Client模块paramiko的安装与修改
    history优化设置
    shell配置和vim配置
    testlink 安装方法
    python解析GBK格式xml文件
    运用Loadrunner测试Mysql数据库性能 TRON•极客
    写python用到的一些大杀器
  • 原文地址:https://www.cnblogs.com/sjkzy/p/15074321.html
Copyright © 2011-2022 走看看