第六章 【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、根据用户经度、维度坐标查找聚类中心最近并做物品的推荐

原文地址:https://www.cnblogs.com/sjkzy/p/15074321.html