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