博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mahout
阅读量:7072 次
发布时间:2019-06-28

本文共 1815 字,大约阅读时间需要 6 分钟。

hot3.png

下载http://mirrors.cnnic.cn/apache/mahout/0.11.0/apache-mahout-distribution-0.9.0-src.zip

转成eclipse项目
F:\hadoopKit\data>mvn eclipse:eclipse
[INFO] Scanning for projects...
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven
-install-plugin/2.4/maven-install-plugin-2.4.pom
导入ecpilse
kmeans算法是最为经典的基于划分的聚类方法,是十大经典的数据挖掘的算法之一
kmeans基本思想是,已空间k个点为中心进行聚类,对靠近他们的对象进行归类
1.通过迭代的方法,足次更新各聚类中心的值,直至得到最好的聚类结果
2.假设要把样本集分为c个类别,算法描述如下:
3.适当选择c个类的初始中心
4在第k次迭代中,对任意一个样本,求其到c各中心的距离,将该样本归到距离最短的中心所在的类
利用均值等方法更新该类的中心值
4对于所有的c个聚类中心不断重复迭代
算法关键在于初始中心和距离
参数Input指定待聚类的所有数据点,clusters指定初始聚类中心
如果指定参数k由org.apache.mahout.clustering.kmeans.RandomSeedGenerator.buildRandom通过org.apache.hadoop.fs直接从input指定文件
中随机读取k个点到clusters中根据原数据点和上次迭代(或初始聚类)的初始聚类中心计算本次迭代的聚类中心输出到
Cluster-N目录下
该过程由org.apache.mahout.clustering.kmeans.下的KmeansMapper\KmeansCombiner\KmeansReduccer\KmeansDriver实现
KmeansMapper在configure中初始化mapper时读入上一次迭代产生或初始聚类中心
每个mapper都读入所有的聚类中心
map方法对输入的每个点,计算距离其最近的类,并加入其中输出KEY为该点所属聚类id value为kmeansinfo实例包含各个点和各个分量的累加和
kmeans combiner 本地累加kmeans mapper输出的同一聚类id下点个数和各分量之和
kmeans reducer 累加同一聚类ID下的点个数和分量的和,求本次迭代的聚类中心并根据delta判断该聚类是否已收敛,上一次迭代聚类中心与本次迭代聚类
中心距离<delta判断该聚类是否已收敛,上一次迭代聚类中心与本次迭代聚类<delta
输出各聚类中心和其是否收敛标记
kmeansDriver控制迭代过程直至超过最大迭代次数或所有聚类都已经收敛
每轮迭代后,kmeansDriver读取其cluster-N目录下的所有聚类若所有聚类已收敛了,则整个kmeans聚类过程收敛了
参数调整
mahout kmeans聚类有两个重要的参数收敛delta和最大迭代次数
案列零售
下载数据
http://fimi.ua.ac.be/data/
[root data]# wget http://fimi.ua.ac.be/data/retail.dat

创建目录

[root bin]# hadoop fs -mkdir -p /user/root/mahoutData
上传文件
root data]# hadoop fs -put retail.data /user/root/mahoutData
[root data]# mahout fpg -i /user/root/mahoutData/retail.data  -o patterns -method mapreduce -s 1000 -regex '[]'
mahout seqdumper -i ~/patterns/fpgrowth/part-r-000000 -o ~/data/patterns.txt

 

转载于:https://my.oschina.net/goudingcheng/blog/799192

你可能感兴趣的文章
写了一个求质数的算法,Mark一下
查看>>
MSGFMT po/de.msg make[1]: *** [po/de.msg] Error 12
查看>>
getaddrinfo()
查看>>
如何判断微信内置浏览器
查看>>
启动线程的方式?
查看>>
LinkedList源码分析
查看>>
OCS inventory NG -Glpi 安装日志
查看>>
我眼中的运维工作
查看>>
Bat 命令使用
查看>>
dmidecode 查看硬件详细信息
查看>>
elasticsearch 常用管理命令
查看>>
VMware vSphere 4.1虚拟化学习手册11:使用Converter工具V2V、P2V导入虚拟机
查看>>
我的友情链接
查看>>
python 正则表达式 笔记
查看>>
possible SYN flooding on port 80. Sending cookies
查看>>
【CISCO技术】GRE-虚拟专用网络(静态)
查看>>
用mysql自带工具mysqlslap对数据库进行压力测试
查看>>
js 浏览器和pc 客户端判断
查看>>
评《GIT和SVN之间的五个基本区别》
查看>>
我的友情链接
查看>>