【用户行为分析】【Mahout】调研学习之一:分析算法简要总结

引言:Mahout是什么

Mahout是Hadoop家族中与众不同的一个成员,是基于一个Hadoop的机器学习和数据挖掘的分布式计算框架。Mahout是一个跨学科产品,同时也是我认为Hadoop家族中,最有竞争力,最难掌握,最值得学习的一个项目之一。

Mahout为数据分析人员,解决了大数据的门槛;为算法工程师,提供基础的算法库;为Hadoop开发人员,提供了数据建模的标准;为运维人员,打通了和Hadoop连接。

下面简要总结《Mahout in Action》中Mahout实现3大类算法: 推荐(Recommendation),聚类(Clustering),分类(Classification)。

Mahout的三种主要算法

1. 推荐(协同过滤)

推荐算法是什么:

  • 基于一个认知:如果在过去有相似表现的用户(商品),他们在未来也会有相似的表现。
  • 例:我们在电商中常见的”喜欢此商品的用户也喜欢“

输入:

  • 用户历史评价记录或购买记录

输出:

  • 产生给某用户推荐的N个商品

推荐的两个角度:

  • 基于用户的推荐和基于商品的推荐。
  • 基于用户的推荐: 对于A用户,找出对商品偏好相似的A的近邻用户,从这些近邻用户喜欢而A没有购买或评价过的物品中向A推荐。
  • 基于商品的推荐:对于A商品,找出与它评价曲线相似A的近邻商品,从这些近邻商品被购买记录中找到对它们有高评价而对A还没有评价的用户,向这些用户推荐A。
  • 用户少、商品多,基于用户的推荐运算较快;商品多,用户少,基于商品的推荐运算较快。

推荐相关的可选算法:

  • 相似度算法(怎么衡量相不相似):欧氏距离、pearson距离等
  • 近邻算法(怎么取近邻):指定近邻数、按比例取近邻
  • 推荐算法(怎么根据近邻产生推荐): SlopOne、SVD等

2. 聚类

什么是聚类:

  • 把事物根据其特征表现的相似性,划分成一个一个的簇。
  • 这是一个无监督的学习过程。(在学习的过程中没有给出期望的答案,产生的结果是算法对数据的一种合理解释)

输入:

  • 向量集(多维空间中的点集)
  • 初始中心(各个簇的中心)

输出:

  • 得到一个个的簇以及簇中心点。

怎样把我们手头的数据化为向量:

  • 常规数据:总结有代表性的维度,并用数值衡量事物在各维度的表现。
  • 文本数据:用基于n-gram的TF或TF-IDF加权将文本文档转换为向量。简单地描述,就是把文本分词,每个词作为一个维度,词的频率(TF)或词频-逆文档频率(TF-IDF)作为各维度的值。

优化:

  • 归一化改善向量质量:有的文本和大多数文本都相近,仔细观察,你会发现是因为这个文本特别大造成的。因此,计算相似性时,我们需要设法抵消向量大小不同造成的影响。降低大向量的重要性并提高小向量的重要性的过程就成为归一化。

3. 分类

什么是分类:

  • 分类是训练计算机让它学会做选择题。我们给分类算法足够的学习材料(含题面和答案),计算机为我们建模,既是从这些材料中找到题面与答案之间的关联关系。希望达到的目的是,我们给出新的题目时,这个模型能运算出答案。
  • 分类通常是一种通过分析低代价变量组合来确定高代价变量值的方法。
  • 例:通过历史邮件作为训练集,判断新接收的邮件是否是垃圾邮件。

输入:

  • 带标注信息的训练样本

输出:

  • 模型

工作流:

  • 构建分类系统主要有两个阶段:通过学习算法建立一个模型,然后使用该模型对新数据进行分类。如何选择训练数据,输出类别(目标),系统使用的学习算法以及用作输入的变量,是构建分类系统第一阶段的关键。

–TBC–

你可能感兴趣的:(hadoop,大数据,Mahout,用户行为分析)