mahout 实现canopy

环境:

mahout-0.8

hadoop-1.1.2

ubuntu-12.04

理论这里就不说了,直接上实例:

下面举一个例子。

数据准备:

canopy.dat文件,COPY到HDFS上,文件内容如下:

8.1  8.1
7.1  7.1
6.2  6.2
7.1  7.1
2.1  2.1
1.1 1.1
0.1 0.1
3.0 3.0

算法简单说明,步骤如下:

(1) 将所有数据放进list中,选择两个距离,T1,T2,T1>T2
(2)While(list不为空)
{ 

随机选择一个节点做canopy的中心;并从list删除该点;

遍历list:

对于任何一条记录,计算其到各个canopy的距离;

如果距离<T2,则给此数据打上强标记,并从list删除这条记录;

如果距离<T1,则给此数据打上弱标记;

如果到任何canopy中心的聚类都>T1,那么将这条记录作为一个新的canopy的中心,并从list中删除这个元素;

}

预期的结果应该是:

Canopy 1 (8.1,8.1) :[ (8.1,8.1),  (7.1,7.1),  (6.2,6.2) ,(7.1,7.1) ]

Canopy 2 (2.1,2.1) :[ (2.1,2.1), (1.1,1.1) ,(0.1,0.1),  (3.0,3.0)  ]

Canopy 3 (0.1,0.1) :[ (0.1,0.1)]

下面开始用Mahout实现

# 1.将数据文件转换成向量

mahout用InputDriver数据转换时候,需要数据默认用空格分隔

mahout org.apache.mahout.clustering.conversion.InputDriver -i /user/hdfs/canopy/in/canopy.dat -o /user/hdfs/canopy/vecfile -v org.apache.mahout.math.RandomAccessSparseVector

# 2. 调用命令

mahout canopy -i /user/hdfs/canopy/vecfile -o /user/hdfs/canopy/out/result -t1 8 -t2 4 -ow -cl 

参数说明:


CanopyDriver.main(args);


--input (-i)


输入路径


--output(-o)


输出路径


--distanceMeasure(-dm)


距离度量类的权限命名,如:”org.apache.mahout.common.distance.CosineDistanceMeasure”


--t1 (-t1)


t1值 (t1>t2)


--t2 (-t2)


t2值


--t3 (-t3)


t3值,默认t3=t1


--t4(-t4)


t4值,默认t4=t2


--overwrite (-ow)


是否覆盖上次操作的结果


--clustering (-cl)


是否执行聚类操作,即划分数据


--method (-method)


默认,mapreduce。还可选sequential,执行单机模式

# 3.查看结果

mahout seqdumper -i /user/hdfs/canopy/out/result/clusters-0-final/part-r-00000  -o /home/hadoop/output/result
#关联各个点
mahout clusterdump -i /user/hdfs/canopy/out/result/clusters-0-final/part-r-00000  -o /home/hadoop/output/result -p /user/hdfs/canopy/out/result/clusteredPoints

C-0{n=2 c=[6.888, 6.888] r=[0.237, 0.237]}

Weight : [props - optional]:  Point:

1.0: [8.100, 8.100]

1.0: [7.100, 7.100]

1.0: [6.200, 6.200]

1.0: [7.100, 7.100]

C-1{n=2 c=[1.083, 1.083] r=[0.983, 0.983]}

Weight : [props - optional]:  Point:

1.0: [2.100, 2.100]

1.0: [1.100, 1.100]

1.0: [3.000, 3.000]

C-2{n=1 c=[0.100, 0.100] r=[]}

Weight : [props - optional]:  Point:

1.0: [0.100, 0.100]

mahout 实现canopy

时间: 2024-10-16 22:42:12

mahout 实现canopy的相关文章

mahout之canopy算法简单理解

canopy是聚类算法的一种实现 它是一种快速,简单,但是不太准确的聚类算法 canopy通过两个人为确定的阈值t1,t2来对数据进行计算,可以达到将一堆混乱的数据分类成有一定规则的n个数据堆 由于canopy算法本身的目的只是将混乱的数据划分成大概的几个类别,所以它是不太准确的 但是通过canopy计算出来的n个类别可以用在kmeans算法中的k值的确定(因为人为无法准确的确定k值到底要多少才合适,而有kmeans算法本身随机产生的话结果可能不是很精确.有关kmeans算法的解释请看点击打开链

Mahout机器学习平台之聚类算法详细剖析(含实例分析)

第一部分: 学习Mahout必须要知道的资料查找技能: 学会查官方帮助文档: 解压用于安装文件(mahout-distribution-0.6.tar.gz),找到如下位置,我将该文件解压到win7的G盘mahout文件夹下,路径如下所示: G:\mahout\mahout-distribution-0.6\docs 学会查源代码的注释文档: 方案一:用maven创建一个mahout的开发环境(我用的是win7,eclipse作为集成开发环境,之后在Maven Dependencies中找到相应

深入浅出Hadoop Mahout数据挖掘实战(算法分析、项目实战、中文分词技术)

Mahout简介 Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目, 提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序 Mahout相关资源 ?Mahout主页:http://mahout.apache.org/ ?Mahout 最新版本0.8下载: http://mirrors.hust.edu.cn/apache/mahout/0.8/ 使用mahout-distribution-0.8.tar.g

Hadoop Mahout数据挖掘实战视频教程

深入浅出Hadoop Mahout数据挖掘实战(算法分析.项目实战.中文分词技术) 适合人群:高级 课时数量:17课时 用到技术:MapReduce并行分词程序 Mahout 涉及项目:Hadoop综合实战-文本挖掘项目 Mahout数据挖掘工具 咨询QQ:1840215592 课程介绍 本课程主要涉及以下内容的讲解: 1.Mahout数据挖掘工具 2.Hadoop实现推荐系统的综合实战,涉及到MapReduce.Pig和Mahout的综合实战 课程针对人群 1.本课程适合于有一定java基础知

学习Mahout(三)

开发+运行第一个Mahout的程序 代码: /** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF lice

Mahout进阶课程|Mahout视频教程

Mahout进阶课程,网盘下载:链接: http://pan.baidu.com/s/1dDGPM4x密码: pqdk 网盘失效的话,请加QQ: 3113533060 课程大纲: 第一周 Mahout概述 Mahout安装 Mahout安装测试 Mahout算法库介绍 解析聚类算法 解析分类算法 协同过滤算法 第二周 聚类算法详解 一.canopy算法简介 1)mahout中canopy算法实现原理 2)mahout的canopy算法实战 3)Hadoop上面运行canopy算法 二.mean

基于Hadoop2.0、YARN技术的大数据高阶应用实战(Hadoop2.0\YARN\Ma

Hadoop的前景 随着云计算.大数据迅速发展,亟需用hadoop解决大数据量高并发访问的瓶颈.谷歌.淘宝.百度.京东等底层都应用hadoop.越来越多的企 业急需引入hadoop技术人才.由于掌握Hadoop技术的开发人员并不多,直接导致了这几年hadoop技术的薪水远高于JavaEE及 Android程序员. Hadoop入门薪资已经达到了8K以上,工作1年可达到1.2W以上,具有2-3年工作经验的hadoop人才年薪可以达到30万—50万. 一般需要大数据处理的公司基本上都是大公司,所以学

Hadoop大数据零基础高端实战培训视频

<Hadoop大数据零基础高端实战培训系列配文本挖掘项目(七大亮点.十大目标)> 课程讲师:迪伦 课程分类:大数据 适合人群:初级 课时数量: 300课时 用到技术:部署Hadoop集群 涉及项目:京东商城.百度.阿里巴巴 咨询QQ:779591710 下载地址: 链接:http://pan.baidu.com/share/link?shareid=3299239734&uk=3289559542 密码:8tkb 第一阶段:Hadoop基础篇(50课时) - 千里之行,始于足下(赠送课

Hadoop2.0、YARN技术大数据视频教程

基于Hadoop2.0.YARN技术的大数据高阶应用实战(Hadoop2.0\YARN\MapReduce\数据挖掘\项目实战)课程分类:Hadoop适合人群:高级课时数量:81课时用到技术:基于协同过滤的推荐系统.基于HBase的爬虫调度库涉及项目:银行人民币查询系统.HBase编程实践及案例分析咨询qq:1840215592 课程内容简介本课程基于<基于Greenplum Hadoop分布式平台的大数据解决方案>Hadoop部分的基础课程来进行扩展延伸,主要内容分为以下四部分:一.对Had