mahout源码分析之DistributedLanczosSolver(一) 实战

Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit。

本篇开始系列svd,即降维。这个在mahout中可以直接运行MAHOUT_HOME/mahout/svd -h 即可看到该算法的调用参数,或者在官网相应页面也可以看到,本次实战使用的svd的调用参数如下:

package mahout.fansy.svd;  

import org.apache.mahout.math.hadoop.decomposer.DistributedLanczosSolver;  

public class RunSvd {  

    /**
     * 调用svd算法
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        String[] arg=new String[]{"-jt","ubuntu:9001","-fs","ubuntu:9000",
                "-i","hdfs://ubuntu:9000/svd/input/wind",
                "-o","hdfs://ubuntu:9000/svd/output",
                "-nr","178","-nc","14",
                "-r","3",
                "-sym","square",
                "--cleansvd","true",
                "--tempDir","hdfs://ubuntu:9000/svd/temp"
        };
        DistributedLanczosSolver.main(arg);
    }  

}

在运行这个算法之前,需要转换输入数据,比如使用下面的输入数据:

返回栏目页:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/extra/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索mahout
, 算法
, ubuntu
, string
, exception
, mahout  
SVD
mahout实战中文版pdf、mahout实战、mahout实战 pdf、mahout实战 中文 pdf、mahout实战 pdf 下载,以便于您获取更多的相关知识。

时间: 2024-10-31 08:12:29

mahout源码分析之DistributedLanczosSolver(一) 实战的相关文章

mahout源码分析之DistributedLanczosSolver(七) 总结篇

Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit. 看svd算法官网上面使用的是亚马逊的云平台计算的,不过给出了svd算法的调用方式,当算出了eigenVectors后,应该怎么做呢?比如原始数据是600*60(600行,60列)的数据,计算得到的eigenVectors是24*60(其中的24是不大于rank的一个值),那么最后得到的结果应该是original_data乘以eigenVectors的转置这样就会得到一个600*24的矩阵,这样就达到了

mahout源码分析之DistributedLanczosSolver(五)

Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit. 1. Job 篇 接上篇,分析到EigenVerificationJob的run方法: public int run(Path corpusInput, Path eigenInput, Path output, Path tempOut, double maxError, double minEigenValue, boolean inMemory, Configuration conf) thro

mahout源码分析之DistributedLanczosSolver(二) Job1

Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit. 在上篇blog中的最后终端的信息可以看到,svd算法一共有5个Job任务.下面通过Mahout中DistributedLanczosSolver源代码来一个个分析: 为了方便后面的数据随时对照,使用wine.dat修改后的数据,如下(5行,13列): 14.23,1.71,2.43,15.6,127,2.8,3.06,0.28,2.29,5.64,1.04,3.92,1065 13.2,1.78,2.

mahout源码分析之DistributedLanczosSolver(六) 完结篇

Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit. 接上篇,分析完3个Job后得到继续往下:其实就剩下两个函数了: List<Map.Entry<MatrixSlice, EigenStatus>> prunedEigenMeta = pruneEigens(eigenMetaData); saveCleanEigens(new Configuration(), prunedEigenMeta); 看pruneEigens函数: priv

mahout源码分析之DistributedLanczosSolver(四)rawEigen简介

Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit. 接上篇,eigen分解,额,太复杂了,人太浮躁了,静不下来分析(说java对矩阵操作支持度不足,额,好吧是外部原因). 1. 前奏: eigen分解的是triDiag矩阵,这个矩阵,上篇求得的结果是: [[0.315642761491587, 0.9488780991876485, 0.0], [0.9488780991876485, 2.855117440373572, 0.0], [0.0, 0.

mahout源码分析之DistributedLanczosSolver(三) Job2

Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit. 1. 前奏: 本篇接着上篇继续分析,分析LanczosSolver中的:Vector nextVector = isSymmetric ? corpus.times(currentVector) : corpus.timesSquared(currentVector);之后.前篇说到这个是建立了一个job任务,并且按照一定的算法求得了一个nextVector,那么接下来是? if (state.get

Hadoop2源码分析-RPC探索实战

1.概述 在<Hadoop2源码分析-RPC机制初识>博客中,我们对RPC机制有了初步的认识和了解,下面我们对Hadoop V2的RPC机制做进一步探索,在研究Hadoop V2的RPC机制,我们需要掌握相关的Java基础知识,如:Java NIO.动态代理与反射等.本篇博客介绍的内容目录如下所示: Java NIO简述 Java NIO实例演示 动态代理与反射简述 动态代理与反射实例演示 Hadoop V2 RPC框架使用实例 下面开始今天的博客介绍. 2.Java NIO简述 Java N

Hadoop2源码分析-YARN RPC 示例介绍

1.概述 之前在<Hadoop2源码分析-RPC探索实战>一文当中介绍了Hadoop的RPC机制,今天给大家分享关于YARN的RPC的机制.下面是今天的分享目录: YARN的RPC介绍 YARN的RPC示例 截图预览 下面开始今天的内容分享. 2.YARN的RPC介绍 我们知道在Hadoop的RPC当中,其主要由RPC,Client及Server这三个大类组成,分别实现对外提供编程接口.客户端实现及服务端实现.如下图所示:     图中是Hadoop的RPC的一个类的关系图,大家可以到<

《MapReduce 2.0源码分析与编程实战》一导读

前 言 MapReduce 2.0源码分析与编程实战 我们处于一个数据大爆炸的时代.每时每刻.各行各业都在产生和积累海量的数据内容.这些数据中蕴含着进行业务活动.获取商业信息.做出管理决策的重要信息.如何处理这些数据并获取有价值的信息,是众多组织和单位面临的共同问题.而这个问题的解决又依赖两项技术,一是能够对产生的业务数据进行统一管理和综合,并且能够无限扩展存储空间:二是能够有效处理获得的海量数据,在限定时间内获得处理结果的处理程序. 因此,寻求一个合理可靠的大数据处理决方案是目前数据处理的热点