网络营销广告策划,长沙优化网站分析,iis新建网站,悦诗风吟网站建设策划书认识Mahout下的云计算机器学习 Apache Mahout 是 ApacheSoftware Foundation (ASF) 旗下的一个开源项目#xff0c;提供一些可扩展的机器学习领域经典算法的实现#xff0c;旨在帮助开发人员更加方便快捷地创建智能应用程序#xff0c;并且#xff0c;在 Mahout 的最近版本… 认识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由以下几个主要组件组成 DataModelDataModel是用户喜好信息的抽象接口它的具体实现支持从指定类型的数据源抽取用户喜好信息。在Mahout0.5中Taste 提供JDBCDataModel 和 FileDataModel两种类的实现分别支持从数据库和文件文件系统中读取用户的喜好信息。对于数据库的读取支持在Mahout 0.5中只提供了对MySQL和PostgreSQL的支持如果数据存储在其他数据库或者是把数据导入到这两个数据库中或者是自行编程实现相应的类。 UserSimilarit和ItemSimilarity前者用于定义两个用户间的相似度后者用于定义两个项目之间的相似度。Mahout支持大部分驻留的相似度或相关度计算方法针对不同的数据源需要合理选择相似度计算方法。 UserNeighborhood在基于用户的推荐方法中推荐的内容是基于找到与当前用户喜好相似的“邻居用户”的方式产生的该组件就是用来定义与目标用户相邻的“邻居用户”。所以该组件只有在基于用户的推荐算法中才会被使用。 RecommenderRecommender是推荐引擎的抽象接口Taste 中的核心组件。利用该组件就可以为指定用户生成项目推荐列表。 Mahout源码目录说明 mahout项目是由多个子项目组成的各子项目分别位于源码的不同目录下下面对mahout的组成进行介绍 1、mahout-core核心程序模块位于/core目录下 2、mahout-math在核心程序中使用的一些数据通用计算模块位于/math目录下 3、mahout-utils在核心程序中使用的一些通用的工具性模块位于/utils目录下 上述三个部分是程序的主题存储所有mahout项目的源码。 另外mahout提供了样例程序分别在taste-web和examples目录下 4、taste-web利用mahout推荐算法而建立的基于WEB的个性化推荐系统demo 5、examples对mahout中各种机器学习算法的应用程序 6、binbin目录下只有一个名为mahout的文件是一个shell脚本文件用于在hadoop平台的命令行下调用mahout中的程序 在buildtools、eclipse和distribution目录下有mahout相关的配置文件 7、buildtools目录下是用于核心程序构建的配置文件以mahout-buildtools的模块名称在mahout的pom.xml文件中进行说明 8、eclipse下的xml文件是对利用eclipse开发mahout的配置说明 9、distribution目录下有两个配置文件bin.xml和src.xml进行mahou安装时的一些配置信息。 在开发的时候一般很少对这个目录下的文件进行修改所以不用太关注知道大体什么意思就ok 另 外在mahout的下载地址下可以看到有个文件夹与mahout处于同一级别它是mahout项目的分支项目—mahout- collections用于实现了核心程序中使用的集合类操作该模块独立于mahout进行开发是对标准jdk中关于集合类的修改使其可以适应数 据密集型项目的开发。 在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进行运行。 posted on 2011-12-22 11:16 wentingtu 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/wentingtu/archive/2011/12/22/2297496.html