云计算数据挖掘Mahout下的机器学习
Apache Mahout 是 ApacheSoftware Foundation (ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序,并且,在 Mahout 的最近版本中还加入了对Apache Hadoop 的支持,使这些算法可以更高效的运行在云计算环境中。
在Mahout实现的机器学习算法见下表:
算法类 |
算法名 |
中文名 |
分类算法 |
Logistic Regression |
逻辑回归 |
Bayesian |
贝叶斯 |
|
SVM |
支持向量机 |
|
Perceptron |
感知器算法 |
|
Neural Network |
神经网络 |
|
Random Forests |
随机森林 |
|
Restricted Boltzmann Machines |
有限波尔兹曼机 |
|
聚类算法 |
Canopy Clustering |
Canopy聚类 |
K-means Clustering |
K均值算法 |
|
Fuzzy K-means |
模糊K均值 |
|
Expectation Maximization |
EM聚类(期望最大化聚类) |
|
Mean Shift Clustering |
均值漂移聚类 |
|
Hierarchical Clustering |
层次聚类 |
|
Dirichlet Process Clustering |
狄里克雷过程聚类 |
|
Latent Dirichlet Allocation |
LDA聚类 |
|
Spectral Clustering |
谱聚类 |
|
关联规则挖掘 |
Parallel FP Growth Algorithm |
并行FP Growth算法 |
回归 |
Locally Weighted Linear Regression |
局部加权线性回归 |
降维/维约简 |
Singular Value Decomposition |
奇异值分解 |
Principal Components Analysis |
主成分分析 |
|
Independent Component Analysis |
独立成分分析 |
|
Gaussian Discriminative Analysis |
高斯判别分析 |
|
进化算法 |
并行化了Watchmaker框架 |
|
推荐/协同过滤 |
Non-distributed recommenders |
Taste(UserCF, ItemCF, SlopeOne) |
Distributed Recommenders |
ItemCF |
|
向量相似度计算 |
RowSimilarityJob |
计算列间相似度 |
VectorDistanceJob |
计算向量间距离 |
|
非Map-Reduce算法 |
Hidden Markov Models |
隐马尔科夫模型 |
集合方法扩展 |
Collections |
扩展了java的Collections类 |
Mahout最大的优点就是基于hadoop实现,把很多以前运行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法可处理的数据量和处理性能。
Mahout下个性化推荐引擎Taste介绍
Taste是 Apache Mahout 提供的一个个性化推荐引擎的高效实现,该引擎基于java实现,可扩展性强,同时在mahout中对一些推荐算法进行了MapReduce编程模式转化,从而可以利用hadoop的分布式架构,提高推荐算法的性能。
在Mahout0.5版本中的Taste, 实现了多种推荐算法,其中有最基本的基于用户的和基于内容的推荐算法,也有比较高效的SlopeOne算法,以及处于研究阶段的基于SVD和线性插值的算法,同时Taste还提供了扩展接口,用于定制化开发基于内容或基于模型的个性化推荐算法。
Taste 不仅仅适用于 Java 应用程序,还可以作为内部服务器的一个组件以 HTTP 和 Web Service 的形式向外界提供推荐的逻辑。Taste 的设计使它能满足企业对推荐引擎在性能、灵活性和可扩展性等方面的要求。
下图展示了构成Taste的核心组件:
从上图可见,Taste由以下几个主要组件组成:
DataModel:DataModel是用户喜好信息的抽象接口,它的具体实现支持从指定类型的数据源抽取用户喜好信息。在Mahout0.5中,Taste 提供JDBCDataModel 和 FileDataModel两种类的实现,分别支持从数据库和文件文件系统中读取用户的喜好信息。对于数据库的读取支持,在Mahout 0.5中只提供了对MySQL和PostgreSQL的支持,如果数据存储在其他数据库,或者是把数据导入到这两个数据库中,或者是自行编程实现相应的类。
UserSimilarit和ItemSimilarity:前者用于定义两个用户间的相似度,后者用于定义两个项目之间的相似度。Mahout支持大部分驻留的相似度或相关度计算方法,针对不同的数据源,需要合理选择相似度计算方法。
UserNeighborhood:在基于用户的推荐方法中,推荐的内容是基于找到与当前用户喜好相似的“邻居用户”的方式产生的,该组件就是用来定义与目标用户相邻的“邻居用户”。所以,该组件只有在基于用户的推荐算法中才会被使用。
Recommender:Recommender是推荐引擎的抽象接口,Taste 中的核心组件。利用该组件就可以为指定用户生成项目推荐列表。
Mahout源码目录说明
在windows xp下利用Eclipse构建Mahout
1. Mahout构建的先决条件
1) JDK,使用1.6版本。需要说明一下,因为要基于Eclipse构建,所以在设置path的值之前要先定义JAVA_HOME变量。
2) Maven,使用2.0.11版本或以上。在eclipse上安装maven插件—m2eclipse。
2. mahout源码获取
与其他Apache下开源项目类似,可以有两种获取源码的方法:
一是通过Subversion检出,检出命令和地址如下
svn co http://svn.apache.org/repos/asf/mahout/trunk
二是直接下载发行版本,下载地址:http://apache.etoak.com//mahout/,打开该地址,可以看到如下目录组织:
到发文为止mahout的发行版本到0.5,点击进入0.5/,进入源码页,如下图:
红色框中的就是mahout的源码压缩文件,可以根据安装的解压工具选择任意一个进行下载。
另外,下载发行版也可以到maven的在线资源库中下载,地址如下:
http://repo2.maven.org/maven2/org/apache/mahout/
3. mahout构建
1)解压mahout源码压缩文件,了解目录结构
利用解压工具把下载的压缩包解压到当前目录,点击进入,可以看到如下目录结构(使用subversion检出的可以在检出的当前目下看到如下目录结构):
2)把源码导入eclipse中
打开eclipse,点击file->import 在开打的对话框中,选择导入maven项目如下图,然后点击next
通过浏览方式,确定mahout源码的根目录,如下图,然后点击finish:
至此,通过eclipse的package explore 可以查看导入的mahout项目的组成,如下图:
3)运行编译
运行时,点开mahout-distribution-0.5,选中其下的pom.xml文件,然后右键选择run as项,就可以对mahout进行构建、编译、测试以及安装等操作。
如果只是要对某个子项目进行操作,可以点击子项目的pom.xml进行运行。
转载于:https://www.cnblogs.com/wusam/p/3581803.html
云计算数据挖掘Mahout下的机器学习相关推荐
- 认识Mahout下的云计算机器学习
认识Mahout下的云计算机器学习 Apache Mahout 是 ApacheSoftware Foundation (ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在 ...
- 【2015年第4期】大数据时代的数据挖掘 —— 从应用的角度看大数据挖掘(下)...
大数据时代的数据挖掘 -- 从应用的角度看大数据挖掘(下) 李 涛1,2,曾春秋1,2,周武柏1,2,周绮凤3,郑 理1,2 1. 南京邮电大学计算机学院 南京 210023:2. 美国佛罗里达国际大 ...
- 2018年最好的软件开发、云计算、大数据分析和机器学习工具
InfoWorld编辑和评论家评选出今年最好的软件开发,云计算,大数据分析和机器学习工具. 欢迎来到InfoWorld的年度技术奖,这是我们对信息技术领域中最好,最具创新性,最重要的产品的年度庆典. ...
- 可持续5G环境下基于机器学习的网络分片框架
Machine Learning-Based Network Sub-Slicing Framework in a Sustainable 5G Environment 5G环境下的物联网框架 5G切 ...
- 浅谈大数据下的机器学习
大数据和机器学习是目前信息行业快速增长的两大热门领域.从过去的信息闭塞发展到现在数据爆炸,各个领域的数据量和数据规模增长速度都以惊人的速度增长.根据美国国家安全局的统计,互联网每天处理1826PB字节 ...
- 如何在时间紧迫情况下进行机器学习:构建标记的新闻 数据 库 开发 标记 网站 阅读1629 原文:How we built Tagger News: machine learning on a
如何在时间紧迫情况下进行机器学习:构建标记的新闻 数据 库 开发 标记 网站 阅读1629 原文:How we built Tagger News: machine learning on a ti ...
- 数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)的区别是什么? 数据科学(data science)和商业分析(business analytics
数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)的区别是什么? 数据科学(data science)和商业分析(business analytics ...
- python的开发环境有哪些系统_Win10下配置机器学习python开发环境
近期计划写一写机器学习微信小程序的开发教程,但微信开发工具只提供了Windows和Mac OS版本,作为一名长期使用Linux系统的开发人员,虽然始终认为Linux系统才是对开发者最友好的,但微信团队 ...
- 数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)的区别是什么
数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)的区别是什么? 数据科学(data science)和商业分析(business analytics ...
最新文章
- 超轻量级中文OCR,支持竖排文字识别、ncnn推理,总模型仅17M
- Nginx其他配置——日志管理、网页压缩、访问控制
- New Year and Old Subsequence CodeForces - 750E(线段树+矩阵dp)2019南昌icpc网络赛Hello 2019
- 其中一个页签慢_渭南提升一个大专学历的有效方法
- SQLite移植手记1
- Webpack使用指南
- SDOI 2017R2游记
- python和java学哪个好-Python和Java该学哪个?还在纠结的你看过来呀~
- python求偏度系数_python pandas库和stats库计算偏度和峰度(附程序)
- arcpy.ProjectRaster_management
- SqlCommand详解以及SqlParameter的两种用法和DataTable基础
- linux svn 查看忽略文件,linux下SVN忽略文件/文件夹的方法
- 马士兵servletjsp视频教程——第二部分jsp笔记及源代码、servlet和jsp的通信
- 翻译pdf中的英文 python_看不懂pdf中的英文?就用Python
- git提交代码至码云
- keil中出现警告:last line of file ends without a newline解决方法
- 路由器芯片和服务器,软路由就是软路由,还是回归它本该有的身份吧。一个越折腾越迷茫者的经历...
- 软件授权解决方案FlexNet Publisher
- 怎么在计算机里找到CF里保存的视频,cf录像保存在哪?cf怎么样录像保存方法
- C/C++捕获段错误,打印出错的具体位置(精确到哪一行
热门文章
- Openresty 预编译安装教程
- spring boot整合freemarker及freemarker基础语法超详细讲解
- seo模拟点击软件_网站用软件刷排名好不好?
- StringBuilder的原理
- Qt connect信号连接的几种写法
- 如何解决某个端口被谁占用?
- 强化学习4——无模型控制model-free control (On-Policy learning:Sarsa和Off-policy learning:Q-learning)
- Ubuntu关闭anaconda自动进入base虚拟环境
- python 异常函数调用栈_Python捕获异常堆栈信息的几种方法
- pytorch指定用多张显卡训练_Pytorch多GPU训练