Mahout初步认识

Apache Mahout项目主要包括以下五个部分:

频繁模式挖掘:挖掘数据中频繁出现的项集。

聚类:将诸如文本、文档之类的数据分成局部相关的组。

分类:利用已经存在的分类文档训练分类器,对未分类的文档进行分类。

推荐引擎(协同过滤):获得用户的行为并从中发现用户可能喜欢的事务。

频繁子项挖掘:利用一个项集(查询记录或购物目录)去识别经常一起出现的项目。

在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的MR运行作业。

Mahout API分为以下几部分:

org.apache.mahout.cf.taste:基于协同过滤的Taste相关的API。

org.apache.mahout.clustering:聚类算法相关的API

org.apache.mahout.classifier:分类算法

org.apache.mahout.fpm:频繁模式算法

org.apache.mahout.math:数学计算相关算法

org.apache.mahout.vectorizer:向量计算相关算法

1.KMeansConfigKeys接口

DISTANCE_MEASURE_KEY:K-Means聚类算法使用的距离测量方法

CLUSTER_CONVERGENCE_KEY:K-Means聚类算法的收敛值

CLUSTER_PATH_KEY:K-Means聚类算法的路径

2.KCLUSTER类

通常被主函数调用,通过给定的新聚类中心和距离函数来计算新的聚类,

并判断聚类是否收敛。

类KCLUSTER的主要函数列表

KCLUSTER(Vertor center,int clusterId,DistanceMeasure mesure)

:初始化K-Means聚类算法的构造方法,使用输入的点作为聚类的中心

来创建一个新的聚类。参数measure用于比较点之间的距离,center

为新的聚类中心,clusterId为新聚类的ID

public static String formatCluster(Kcluster cluster)

:格式化输出

public boolean computeConvergence(DistanceMeasure measure,

double convergenceDelta)

:计算该聚类是否收敛

3.KMeansDriver类

该类为执行聚类的入口函数,包括buildClusters、clusterData、

run及main等函数,

函数列表:

public static void run(org.apache.hadoop.conf.Configuration conf,

org.apache.hadoop.fs.Path input,org.apache.hadoop.fs.Path clusterIn,

org.apache.hadoop.fs.Path output,DistanceMeasure measure,double convergenceDelta,

int maxIterations,boolean runClustering,double clusterClassificationThreshold,

boolean runClustering,double clusterClassificationThreshold,boolean runSequential)

throws IOException,InterruptedException,ClassNotFoundException

参数的意义:

conf,输入点的目录路径名

input,初始化计算的输入点所在路径名

clustersIn,初始化及计算聚类的路径

output,输出聚类点的路径名

measure,距离测算法的类名

convergenceDelta,收敛值

maxIterations,最大迭代次数

runClustering,迭代完成之后是否继续聚类

clusterClassificationThreshold,低于该值的点将不会参数聚类

runSequential,是否执行sequential算法

时间: 2024-12-28 09:38:07

Mahout初步认识的相关文章

开源框架Mahout配置

开源框架Mahout配置 机器学习这两年特别火,ATB使劲开百万到几百万年薪招美国牛校的机器学习方向博士,作为一个技术控,也得折腾下,就这样来初步折腾下Mahout这个机器学习的主流开源框架. 一.Mahout简介 Mahout的中文意思:驭象的人,再看看Mahout的logo,骑在象头上的那个Mahout.机器学习是人工智能的一个分支,它涉及通过一些技术来允许计算机根据之前的经验改善其输出.此领域与数据挖掘密切相关,并且经常需要使用各种技巧,包括统计学.概率论和模式识别等.虽然机器学习并不是一

初步了解CPU

了解CPU By JackKing_defier 首先说明一下,本文内容主要是简单说明CPU的大致原理,所需要的前提知识我会提出,但是由于篇幅我不会再详细讲解需要的其他基础知识.默认学过工科基础课. 一.总述 先从计算机的结构说起,在现代计算机中,CPU是核心,常常被比喻为人的大脑.现在的计算机都为“冯·诺依曼机”,“冯诺依曼机”的一个显著的特点就是由运算器.存储器.控制器.输入设备和输出设备组成.CPU是运算器和控制器合起来的统称,因为运算器和控制器在逻辑关系和电路结构上联系十分紧密,尤其在大

zerglurker的C语言教程004——指针初步讲解

在上次的教程里面,我提到了指针. 针对指针,这次我将简单的讲讲,后面我还会讲到--那个时候你应该有了相当的基础. 首先,先讲讲指针类型. 任何类型关键字后面加一个*符号,就会变成指针类型. 比如: char → char* 字符指针 int → int* 整数指针 double→double* 双精度指针 甚至还可以这样: char*→char** 字符指针的指针类型 →char*** 字符指针的指针的指针类型- 指针本质上是一个内存地址值,该内存地址上存放的是相关类型的数值.但是void*指针

mahout之分布式Item-Based使用

一:简介 基于用户的协同推荐算法随着使用者数量的增多,计算的时间就会变长,所以在2001年Sarwar提出了基于项目的协同过滤推荐算法(Item-based Collaborative Filtering Algorithms).基于用户的协同推荐mahout没有实现分布式算法,Mahout基于Item的分布式推荐算法的主要内容见org.apache.mahout.cf.taste.hadoop.item. 二:准备输入文件 采用分布式算法,输入文件首先需存放在hdfs上,文件格式(userid

nodejs,webpack安装以及初步运用

nodejs安装: 1.下载:https://nodejs.org/en/download/ 2.安装node-v6.11.3-x64.msi文件,直接默认安装(next--): 3.验证是否完成安装:cmd 进入后输入命令 node -v  回车能得到nodejs版本号: 输入node 回车再输入console.log('aaaaa') 回车能正常显示输出. 这表示nodejs安装成功. webpack安装: 1.npm安装:在f盘新建文件夹webpack,在webpack文件夹建文件夹dem

Github 的注册教程和初步使用体验

我叫许晴,是网工143的学生,学号是1413042064,兴趣包括手绘,看书和手游.学习过c++和汇编语言课程,但在编程方面没什么独立实践经验. 我的Githup用户名是 XQ123 .下面是我在github的注册流程及初步使用体验. 我先搜索github,试了好几次才进去官网,但是在手机客户端注册的话比较好进.这是网页注册的界面.使用名不能设成中文,只能使用数字.字母和特殊符号,不能以短横线开头.如果设置的用户名有重复的话也不能设置 如果设置的用户名已经有人使用的话,也是不能设置的. 然后就是

mahout 随机森林RF算法

在随机森林中的随机性体现在:1.训练数据的随机性 2. 选择分割属性的随机性 能解决分类与回归问题,并且都有很好的估计表现 1.生成数据说明文件 mahout describe -p input.csv -f input.info-d2 I 3 N I 5 N I 3 C L(执行describe生成数据的说明文件) 2.训练模型 mahout buildforest -d input.csv -ds input.info -sl 5 -p -t 5 -o forest_result(生成随机森

Unity3D游戏开发初探—2.初步了解3D模型基础

一.什么是3D模型? 1.1 3D模型概述 简而言之,3D模型就是三维的.立体的模型,D是英文Dimensions的缩写. 3D模型也可以说是用3Ds MAX建造的立体模型,包括各种建筑.人物.植被.机械等等,比如一个大楼的3D模型图.3D模型也包括玩具和电脑模型领域. 互联网的形态一直以来都是2D模式的,但是随着3D技术的不断进步,在未来的时间里,将会有越来越多的互联网应用以3D的方式呈现给用户,包括网络视讯.电子阅读.网络游戏.虚拟社区.电子商务.远程教育等等.甚至对于旅游业,3D互联网也能

[转]hadoop,spark,storm,pig,hive,mahout等到底有什么区别和联系?

摘自知乎大神的论述 作者:Xiaoyu Ma链接:https://www.zhihu.com/question/27974418/answer/38965760来源:知乎著作权归作者所有,转载请联系作者获得授权. 大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的.你可以把它比作一个厨房所以需要的各种工具.锅碗瓢盆,各有各的用处,互相之间又有重合.你可以用汤锅直接当碗吃饭喝汤,你可以用小刀或者刨子去皮.但是每个工具有自己的特性,虽然奇怪