Hadoop白皮书(5):机器学习Hahout简介
Mahout 是一套具有可扩充能力的机器学习类库。它提供机器学习框架的同时,还实现了一些可扩展的机器学习领域经典算法的实现,可以帮助开发人员更加方便快捷地创建智能应用程序。通过和 Apache Hadoop 分布式框架相结合,Mahout 可以有效地使用分布式系统来实现高性能计算。
Mahout 现在提供 4 种使用场景的算法。
• 推荐引擎算法:通过分析用户的使用行为的历史记录来推算用户最可能喜欢的商品、服务、套餐的相关物品。实现时可以基于用户的推荐(通过查找相似的用户来推荐项目)或基于项目的推荐(计算项目之间的相似度并做出推荐)。
• 聚类算法:通过分析将一系列相关的物品等划分为相关性相近的群组。
• 分类算法:通过分析一组已经分类的物品,将其他未分类的其他物品按同样规则归入相应的分类。
• 相关物品分析算法:识别出一系列经常一起出现的物品组(经常一起查询、放入购物 车等)。
Mahout 算法所处理的场景,经常是伴随着海量的用户使用数据的情况。通过将 Mahout 算法构建于 MapReduce 框架之上,将算法的输入、输出和中间结果构建于 HDFS 分布式文件系统之上,使得 Mahout 具有高吞吐、高并发、高可靠性的特点。最终,使业务系统可以高效快速地得到分析结果。
MapReduce 应用场景
视频分析和检索
使用 Hadoop Map/Reduce 算法,将存放在视频图片库中的海量数据并行分析检索,并可以将分析结果实时汇总,以提供进一步的分析及使用。Map/Reduce 算法使得原来需要几天的分析计算缩短到几个小时,如果需要甚至可以通过添加服务器的方式线性增加系统的处理能力。新的算法,比如数字城市中的车牌识别、套牌分析、车辆轨迹分析等应用,都通过 Map/Reduce 算法部署到服务器集群中。
客户流失性分析
风险分析需要在不同数据源的海量数据中使用模式识别技术寻找出具有风险倾向的个体或公司。海量数据的存储、搜索、读取和分析都是需要高计算能力和高吞吐量的系统来实现。使用 Map/Reduce算法可以将复杂的计算动态地分布到服务器集群中的各台服务器上并行处理,可以通过服务器的线性扩充轻易突破计算能力的瓶颈,解决海量数据高性能计算的问题。某运行商将所有的通讯记录实时导入到 HBase 中,一方面通过 HBase 提供实时的通讯记录查询功能,另一方面通过Map/Reduce 分析用户的历史通讯记录以识别出优质客户;当他们的通讯量显著减少时,意味着这些用户可能已转移到其他运行商,从而可以采取特定优惠措施留住这些用户。
推荐引擎
推荐引擎工具用于找出物品之间的相关性,然后推荐给用户相似的物品,从而达到进一步吸引用户,提高用户粘性的目的。某购物网站采用 Map/Reduce 分析大量用户的购买记录,计算购买记录间的相似性,从而找出商品间的相关度。然后以商品为索引列出相关的其他商品。在用户购买了某一个商品后,网站根据分析结果推荐给用户可能感兴趣的其他商品。由于用户的购买记录是海量数据,要在特定时间内及时得到分析结果,必需采取 Map/Reduce 的方法对购买记录进行并行统计和汇总。
数据分析手段
• 全文挖掘
• 建立索引
• 图形创建和分析
• 模式识别
• 协同过滤
• 情感分析
• 风险评估
数据分析应用
• 视频分析和检索
• 现实风险建模
• 客户流失性分析
• 推荐引擎
• 广告目标投放
• 售卖点交易分析
• 网络失效预测
• 安全风险分析
• 商业交易监控
• 搜索质量评估
• 数据“沙盒”