大数据(十一) - Mahout
传统数据挖掘/机器学习库存在的问题
缺少一个活跃的技术社区
扩展性差
文档化差,缺少实例
不开源。商业化库
通常由研究机构开发
实施性差
技术社区活跃
扩展性好
文档化好。实例丰富
100%源码开源
易于使用
基于MapReduce开发的数据挖掘/机器学习库
良好的扩展性和容错性
属于Hadoop生态系统重要组成部分
Apache Software License 2
实现了大部分经常使用的数据挖掘算法
聚类算法
分类算法
推荐算法
http://cwiki.apache.org/confluence/display/MAHOUT/Algorithms
将类似的对象划分成多个类的过程
“物以类聚,人以群分”
以k-means聚类算法为例介绍
给定聚类个数k
依照数据特征,将其分为k个类别
分类的基本流程
有监督机器学习算法
需提供样本,依据样本得到分类模型
分类三步骤
步骤1:训练样本。得到分类模型;
步骤2:对分类模型进行測试,并尝试调优
步骤3:将分类模型用于线上产品中
诞生于电子商务系统中;
依据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品;
以协同过滤推荐算法为例进行介绍
推荐系统中应用最早和最为成功的技术之中的一个
如果:为一用户找到他真正感兴趣的内容的好方法是首先找到与此用户有相似兴趣的其它用户,然后将他们感兴趣的内容推荐给此用 户
协同过滤推荐算法—基本元素
Item
可以被推荐给使用者的项目
可以推Item做评分,能为系统推荐Item的使用者
Preference
User对Item的评分
{ userId, itemId, rating }
User-Item矩阵
User-based
基于使用者间的相似性推荐项目
Item-based
基于项目间的相似性推荐给使用者
各有优劣
User-based的推荐效果好
Item-based的计算效率高
Taste 是 Apache
Mahout 提供的一个协同过滤算法的高效实现。
基于 Java 实现的可扩展的,高效的推荐引擎。
实现了最主要的基于用户的和基于内容的推荐算法,也提供了扩展接口。使用户能够方便的定义和实现自己的推荐算法。
Taste 的设计使它能满足企业对推荐引擎在性能、灵活性和可扩展性等方面的要求。
总结
1.数据挖掘/机器学习算法对技术人员有较高要求。
2.Mahout提供了一个通用数据挖掘/机器学习库。但对技术人员要求仍很高。