Spark MLlib 笔记

RDD RDD可以看成一个简单的“数组”,对其进行 操作也只需要调用有限的数组中的方法即可。 它与一般数组的区别在 于:RDD是分布式存储,可以更好地利用现有的云数据平台,并在内存中运行。 RDD是Resilient Distributed Datasets的简称,翻译成中文为“弹性分布式数据集”, 这个语义揭示了RDD实质上是存储在不同节点计算机中 的数据集。 分布式存储最大的好处是可以让数据在不同的工作节点上并 行存储, 以便在需要数据的时候并行运算,从而获得最迅捷的运行效率。

RDD工作原理图

RDD可以将其看成一个分布在不同节点 中的分布式数据集,并将数据以数据块(Block)的形式存储在各个节点的计算机中, 整体布局如图3-2所示。

RDD的相互依赖

协同过滤算法 协同过滤(Collaborative Filtering)算法是一种基于群体用户或者物 品的典型推荐算法, 也是目前常用的推荐算法中最常用和最经典的算法。 可以这么说,协同过滤算法的确认就是标准推荐算法作为一种可行 的机器推荐算法标准步入正轨。 协同过滤算法主要有两种: 通过考察具有相同爱好的用户对相同物品的评分标准 进行计算; 考察具有相同特质的物品从而推荐给选择了某件物品 的用户。 总体来说,协同过滤算法就是建立在基于某种物品和用户之间相互 关联的数据关系之上。

基于用户的推荐

对于基于用户相似性的推荐,用简单的一个词表述,那就是“志趣相投”。

基于物品的推荐

“物以类聚”

相似度度量

基于欧几里得距离的相似度计算

欧几里得距离(Euclidean distance)是最常用计算距离的公式,它 表示三维空间中两个点的真实距离。 欧几里得相似度计算是一种基于用户之间直线距离的计算方式。 在 相似度计算中,不同的物品或者用户可以将其定义为不同的坐标点,而 特定目标定位为坐标原点。 使用欧几里得距离计算两个点之间的绝对距离,公式如下: 补充: 由于在欧几里得相似度计算中,最终数值的大小与相似 度成反比, 因此在实际应用中常常使用欧几里得距离的倒数作为相似度值,即1/d+1作为近似值。 从公式可以看到,作为计算结果的欧式值显示的是两点之间的直线 距离, 该值的大小表示两个物品或者用户差异性的大小,即用户的相似 性如何。 如果两个物品或者用户距离越大,则可以看到其相似度越小, 距离越小则相似度越大。 来看一个例子,表5-1是一个用户与其他用户
打分表: 如果需要计算用户1和其他用户之间的相似度,通过欧几里得距离 公式可以得出: 参考 感谢帮助! Spark MLlib机器学习实践(第2版)