Mahout
提供了常用算法的程序库,可以基于分布式做数据挖掘.
常见算法
回归算法:用于预测(日期交易量预测等等)。
比如身高和体重作为x,y坐标,给出一组人的身高体重,形成作为图上的一个个点(学习集),
计算出一条直线或者抛物曲线,能够离所有点综合距离最小。
那么可以任意给出身高,根据给出的曲线预测出相应的体重。
-------------------------------------------------------------
分类器
依据以往的数据样本,做出一个分类器(或者说分类函数),对现有的数据进行分类。
通常是二分函数
贝叶斯分类器 概率分类器
常用于垃圾邮件的分类,将邮件内容进行分词,发现词语高频率属于垃圾邮件的词汇,
判断出此邮件是否为垃圾邮件的概率。
---------------------------------------------------------------
聚类(K-Means)
根据数据的共同特性,进行归类。
比如动物的进化树,通过分析DNA做聚类,可以计算出哪些生物是有亲缘关系。
------------------------------------------------------------------
频繁数据挖掘
依据以往数据样本,计算出物品共同出现的概率。
可以做推荐系统
-------------------------------------------------------------------
传统数据分析工具的困境
R,SAS,SPSS等典型应用场景为实验室工具
处理的数据需要先读入内存,因此数据量受限于内存,无法处理海量数据。
使用Oracle数据等处理海量数据,但缺乏有效快速专业分析功能。
可以采用抽样等方法,但有局限性。比如聚类,推荐系统无法使用抽样
解决方向:hadoop集群和Map-Reduce并行计算
Mahout的主要目的是实现可伸缩的机器学习算法(就是算法的M-R化)。
目的是帮组开发人员建立具有机器智能的应用程序。
1.频繁模式挖掘
2.聚类算法
3.分类器
4.推荐系统
5.频繁子项挖掘