Mahout应用(一)

Mahout 是应用于hadoop上的数据挖掘工具(废话不多说)

这里先简单介绍一下mahout的一般使用方法。

拿kmeans为列子

Mahout中的kmeans所需要的输入比较特殊需要的输入类型为VectorWritable类型并且是SequenceFile格式存储(一般来讲为了方便查看数据我比较喜欢直接用Text格式直接存储)使用SequenceFile主要是因为可压缩和数据读入速度,mahout认为我们的输出绝大多数不需要看而是为了当做以后的输入。VectorWritable的应用我们以后再说。

Mahout中有一个类叫做InputDriver是用来将输入的文件转化成VectorWritable格式,这里需要注意一下它需要的输入为Text格式存储的输出为SequenceFile格式,也就是Kmeans所需要的格式,每一行为一个Vector必须用空格分隔。

因为不知道读者的mahout版本所以我这里将用mahout.jar来代表mahout的jar包。

假设HDFS上的输入路径为input,输出为buf1 则可以使用命令行直接进行转换:

hadoop jar mahout.jar org.apache.mahout.clustering.conversion.InputDriver -i input -o buf1

这里的数据为大家截个图:

然后就可以使用mahout中的kmeans算法来进行聚类了

这里可以直接使用bin/mahout 来直接操作。

这里我们的输入是上次的输出buf1,输出为output,需要一个路径来存放聚类的中心 buf2,那么命令行代码例子为:

bin/mahout kmeans\

--input buf1\

--output output\

-k 5 \

-c buf2\

--maxIter 100\

-cd 0.001\

-dm org.apache.mahout.common.distance.SquaredEuclideanDistanceMeasure \

-cl

为大家解释一下参数,input和output就不解释了,k参数意思为要聚成5类,c参数代表着聚类中心存放的位置,maxIter为最大迭代次数,cd为收敛到多少可以停止,dm为使用的距离公式,有cl参数意味着最后的输出会多一个聚类中心点clusteredPoints(这个是挺必要的为了方便查看结果建议有这个参数如果不查看结果可以没有)。

在若干次mapreduce过程后,我们来查看一下结果:

bin/mahout clusterdump\

--seqFileDir output/clusters-4\

--pointsDir output/clusteredPoints\

--output result.txt

笔者这里迭代四次后收敛所以是clusters-4

上图为结果,里面的c为中心,r为半径。

欢迎大牛拍砖以后会有其他工具和算法的介绍。

Mahout应用(一)的更多相关文章

  1. [Mahout] 完整部署过程

    概述        Mahout底层依赖Hadoop,部署Mahout过程中最困难的就是Hadoop的部署      本文假设用户本身没有进行Hadoop的部署,记述部署Mahout的过程       ...

  2. Mahout之数据承载

    转载自:https://www.douban.com/note/204399134/ 推荐数据的处理是大规模的,在集群环境下一次要处理的数据可能是数GB,所以Mahout针对推荐数据进行了优化. Pr ...

  3. Mahout推荐算法API详解

    转载自:http://blog.fens.me/mahout-recommendation-api/ Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, ...

  4. 从源代码剖析Mahout推荐引擎

    转载自:http://blog.fens.me/mahout-recommend-engine/ Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pi ...

  5. mahout 安装测试

    1 下载 在http://archive.apache.org/dist/mahout下载相应版本的mahout 版本,获取官网查看http://mahout.apache.org 相关的信息

  6. Hadoop里的数据挖掘应用-Mahout——学习笔记<三>

    之前有幸在MOOC学院抽中小象学院hadoop体验课. 这是小象学院hadoop2.X的笔记 由于平时对数据挖掘做的比较多,所以优先看Mahout方向视频. Mahout有很好的扩展性与容错性(基于H ...

  7. 初学Mahout测试kmeans算法

    预备工作: 启动hadoop集群 准备数据 Synthetic_control.data数据集下载地址http://archive.ics.uci.edu/ml/databases/synthetic ...

  8. Mahout安装与配置

    一.安装mahout 1.下载mahout(mahout-distribution-0.9.tar.gz) http://pan.baidu.com/s/1kUtOMQb 2.解压至指定目录 我平时都 ...

  9. Mahout 的安装

    Mahout 的安装 Mahout是Hadoop的一种高级应用.运行Mahout需要提前安装好Hadoop,Mahout只在Hadoop集群的NameNode节点上安装一个即可,其他数据节点上不需要安 ...

  10. Mahout源码分析之 -- 文档向量化TF-IDF

    fesh个人实践,欢迎经验交流!Blog地址:http://www.cnblogs.com/fesh/p/3775429.html Mahout之SparseVectorsFromSequenceFi ...

随机推荐

  1. iOS LLDB调试器

    随着Xcode 5的发布,LLDB调试器已经取代了GDB,成为了Xcode工程中默认的调试器.它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能.LLDB为Xcode提供了底层调试环 ...

  2. 59. Spiral Matrix II

    题目: Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. ...

  3. 机器人学 —— 轨迹规划(Introduction)

    轨迹规划属于机器人学中的上层问题,其主要目标是计划机器人从A移动到B并避开所有障碍的路线. 1.轨迹计划的对象 轨迹规划的对象是map,机器人通过SLAM获得地map后,则可在地图中选定任意两点进行轨 ...

  4. Java API —— TreeMap类

    1.TreeMap类概述         键是红黑树结构,可以保证键的排序和唯一性 2.TreeMap案例         TreeMap<String,String>         T ...

  5. Android开发之通过反射获取到Android隐藏的方法

    在PackageManger中,有些方法被隐藏了,无法直接调用,需要使用反射来获取到该方法. 比如方法:getPackageSizeInfo(),通过这个方法可以获取到apk的CacheSize,Co ...

  6. Git使用简介

    git创建分支并直接切换到分支:git checkout -b name git提交分支到远程服务器: git push origin name/git push origin name:name   ...

  7. Selenium Tutorial (2) - Selenium IDE In Depth

    Installing Firefox and Firebug Installing and Opening Selenium IDE Starting with test cases and test ...

  8. 笨笨-歌词伴侣V1.2(酷狗KRC转LRC,LRC歌词批量下载)

      最近由于某些热心博友在我CSDN博客上使用了我的软件,提出了一些建议,看到自己的成果有人使用并且提出了一些建议,焉有不高兴之理!刚好碰上最近研究UI界面,有了一个初步的框架,就顺手将歌词相关功能集 ...

  9. datatable 的ajax修改参数,post可以传参处理

          datatables常用参数记录 {                "searchable": false,                "orderabl ...

  10. Java [Leetcode 66]Plus One

    题目描述: Given a non-negative number represented as an array of digits, plus one to the number. The dig ...