
mahout
文章平均质量分 90
fansy1990
这个作者很懒,什么都没留下…
展开
-
Mahout源码分析DistributedLanczosSolver(3)--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);之后。前篇说到这个是建立了一个原创 2013-10-29 23:09:43 · 2422 阅读 · 0 评论 -
Mahout贝叶斯算法源码分析(2-2)
接上篇,SequenceFileTokenizerMapper的输出文件在/home/mahout/mahout-work-mahout0/20news-vectors/tokenized-documents/part-m-00000文件即可查看,同时可以编写下面的代码来读取该文件(该代码是根据前面读出聚类中心点文件改编的),如下:package mahout.fansy.test.bayes原创 2013-08-29 21:03:48 · 3083 阅读 · 0 评论 -
Mahout贝叶斯算法源码分析(4)
继前篇blogseq2sparse(3)之TFParitialVectorReducer源码分析 之后,继续分析下面的代码,本次分析的是PartialVectorMergeReducer的源码,这个reducer是下面的函数调用的:PartialVectorMerger.mergePartialVectors(partialVectorPaths, outputDir, conf, normP原创 2013-09-03 00:04:04 · 2757 阅读 · 0 评论 -
Mahout贝叶斯算法源码分析(5)
接上篇blog,继续分析。接下来要调用代码如下:// Should document frequency features be processed if (shouldPrune || processIdf) { docFrequenciesFeatures = TFIDFConverter.calculateDF(new Path(outputDir, tf原创 2013-09-03 19:57:39 · 2264 阅读 · 0 评论 -
Mahout贝叶斯算法源码分析(7)
首先更正下seq2sparse(6)之TFIDFPartialVectorReducer源码分析中最后的公式应该是如下的形式:sqrt(e.get())*[ln(vectorCount/(df+1)) + 1]前面说到e.get(),当时想当然的就以为是获取单词的计数了,其实这里获得的值是1而已,而且那个log函数是以e为底的,所以要改为ln;seq2sparse(7)中的PartialV原创 2013-09-05 21:11:36 · 2997 阅读 · 0 评论 -
Mahout贝叶斯算法源码分析(8)
接着上篇blog,继续看log里面的信息如下:+ echo 'Training Naive Bayes model'Training Naive Bayes model+ ./bin/mahout trainnb -i /home/mahout/mahout-work-mahout/20news-train-vectors -el -o /home/mahout/mahout-work-m原创 2013-09-06 01:23:07 · 3932 阅读 · 1 评论 -
Mahout随机森林算法源码分析(2-1)BuildForest
尼玛,好坑呀!昨天遇到的问题原来是找错包了,那个Step1Mapper.class 同时在mahout-core-0.7.jar mahout-core-0.7-job.jar mahout-examples-0.7-job.jar 三个包中,但是用到的只是mahout-core-0.7.jar中的Step1Mapper.class,所以只用替换mahout-core-0.7.jar原创 2013-09-22 22:25:20 · 3656 阅读 · 1 评论 -
Mahout随机森林算法源码分析(2-4)
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit。接上篇,先来说说上篇最后的bestIg和bestIndex的求法。在说这个前,要首先明确一个数组的熵的求法,按照mahout中的源码针对这样的一个数组a=[1,3,7,3,0,2]其熵为:设sum=1+3+7+3+0+2,则其中pi对应于1/sum、3/sum、7/sum、3/sum、2/su原创 2013-09-24 12:37:57 · 2757 阅读 · 0 评论 -
Mahout随机森林算法源码分析(4)
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit。Mahout系列之Decision Forest写了几篇,其中的一些过程并没有详细说明,这里就分析一下,作为Decision Forest算法系列的结束篇。主要的问题包括:(1)在Build Forest中分析完了Step1Mapper后就没有向下分析了,而是直接进行TestForest的分析了,原创 2013-09-25 20:57:10 · 3272 阅读 · 1 评论 -
Mahout协同过滤算法源码分析(3)--parallelALS
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit。接上篇,此篇分析parallelALS的initializeM函数和for循环(for循环里面含有一个QR分解,此篇只分析到这里为止)。parallelALS的源码对应为:org.apache.mahout.cf.taste.hadoop.als.ParallelALSFactorizationJob原创 2013-10-05 17:48:12 · 4679 阅读 · 0 评论 -
mahout源码K均值聚类算法分析(7)
好吧,我上篇博客的仿造CIReducer的代码的确是有误的,错在哪?map输出的中心点是两个不错,但是其key是不一样的,所以要送到不同的reduce函数中(注意这里是函数,而非reducer,如果是同一个key则要送到同一个reduce中),所以不是一个for循环就搞定的,应该要key的个数个for循环才行。那就是说reducer中的reduce函数一次只能接受一个中心点了(针对一直使用的数据来原创 2013-08-08 20:55:41 · 2673 阅读 · 2 评论 -
mahout源码K均值算法分析(6)
接上文重点分析map操作: Vector probabilities = classifier.classify(value.get());// 第一行 Vector selections = policy.select(probabilities); // 第二行 for (Iterator it = selections.iterateNonZero(); it原创 2013-08-07 01:36:02 · 2410 阅读 · 0 评论 -
Mahout源码K均值聚类算法分析(1)
今天开始分析KMeansDriver的源码,由于之前已经分析过KMeans算法的原理(其实是已经使用hadoop实现过了),所以在这里就讲原理了,而且大家对这个算法的原理基本都清楚(搞数据挖掘的最清楚的应该就算这个算法了吧)。今天要分析的内容其实可以暂时完全不使用hadoop集群,即可以暂时不用开vmware了。额,废话讲了这么多,开始分析吧。首先把下面的代码复制到java工程(这个工程是在讲原创 2013-07-31 20:39:16 · 4336 阅读 · 3 评论 -
Mahout源码分析之DistributedLanczosSolver(5)
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit。接上篇,分析到EigenVerificationJob的run方法:public int run(Path corpusInput, Path eigenInput, Path output,原创 2013-10-30 22:16:39 · 2618 阅读 · 0 评论 -
Mahout源码分析之DistributedLanczosSolver(6)--完结篇
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit。接上篇,分析完3个Job后得到继续往下:其实就剩下两个函数了: List> prunedEigenMeta = pruneEigens(eigenMetaData); saveCleanEigens(new Configuration(), prunedEigenMeta);看p原创 2013-10-30 23:29:09 · 2683 阅读 · 0 评论 -
Mahout 定制ClusterDumper:只输出中心点
hadoop1.0.4,mahout0.5。mahout里面有实现读取聚类算法中的方法,叫做ClusterDumper,这个类输出的格式一般如下:VL-2{n=6 c=[1.833, 2.417] r=[0.687, 0.344]} Weight: Point: 1.0: [1.000, 3.000]... 1.0: [3.000, 2.500]VL-11{n=7 c=[2.8原创 2013-12-26 21:49:06 · 3005 阅读 · 0 评论 -
Hadoop集群算法调用--web平台2.0
前记各种版本:Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit,struts2本版本是《云算法调用平台--web 工程调用hadoop集群1.4》的升级版,项目源码可以在lz的资源页http://download.youkuaiyun.com/detail/fansy1990/6802083下载。项目继续沿用之前的框架struts2。当使用mahout算原创 2014-01-03 02:20:30 · 4505 阅读 · 10 评论 -
Mahout创建一个Web推荐器
最近老是在想着如果可以使用eclipse调用hadoop集群那该多好呀,这里不是说eclipse调用单个节点。比如,我现在有一个hadoop集群,然后我用eclipse调用这个集群(当然我也有hadoop-eclipse插件),当我的MR程序运行完毕后,可以看到在HDFS上面有运行的文件,但是我针对节点机做性能测试时却发现,在我使用eclipse调用hadoop集群时,三个节点机都没有被调用,而只原创 2012-12-06 15:59:51 · 3243 阅读 · 0 评论 -
Mahout关联规则源码分析(2)
mahout里面的关联规则是用FP-tree实现的,上次简单分析了下实现的第一步,一共有三步,如下:现简要分析下第二步:假如原始数据如下:牛奶,鸡蛋,面包,薯片鸡蛋,爆米花,薯片,啤酒鸡蛋,面包,薯片牛奶,鸡蛋,面包,爆米花,薯片,啤酒牛奶,面包,啤酒鸡蛋,面包,啤酒牛奶,面包,薯片牛奶,鸡蛋,面包,黄油,薯片牛奶,鸡蛋,黄油,薯片那么生成的fList如下:原创 2012-12-20 18:13:22 · 3560 阅读 · 2 评论 -
Mahout决策树算法源码分析(2)
决策树Partial Implementation源码的第二部分为:BuildForest,其源码所在位置为:MAHOUT_HOME/example/src/main/java/org/apache/mahout/classifier/df/mapreduce/BuildForest.java,现对其进行简要分析:打开源码可以看到,BuildForest有如下四个步骤:(1)创建一个Dec原创 2013-01-22 21:29:55 · 2730 阅读 · 4 评论 -
Mahout决策树算法源码分析(4)
今天来说,应该是把所有Partial Implementation的内容分析完了(当然也只是分析了属性是离散值的情况的数据,而非离散的并没有分析),下面就说下Partial Implementation实战的第三部分:TestForest,这个源文件在$MAHOUT_HOME/example/src/main/java/org/apache/mahout/classifier/df/mapredu原创 2013-01-26 20:44:01 · 3705 阅读 · 2 评论 -
Mahout协同过滤算法源码分析(6)--并行思路
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit。mahout算法源码分析之Collaborative Filtering with ALS-WR 这个算法的并行主要就应该是ParallelALSFactorizationJob这里的并行了,下图是这个Job的大部分操作:这里分析并行就是看每个job任务是否可以出现多个map或者red原创 2013-10-10 00:50:53 · 4232 阅读 · 3 评论 -
Mahout基于项目的协同过滤算法源码分析(4)共生矩阵乘法
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit。经过了SimilarityJob的计算共生矩阵后,就可以开始下面一个过程了,这个过程主要是共生矩阵的乘法,要说这个共生矩阵的乘法是啥意思?我也不是很清楚,不清楚就看代码呗。首先明确共生矩阵,即共生矩阵的输入文件(也是上面个SimilarityJob的输出文件):similarityMa原创 2013-10-15 20:38:35 · 3783 阅读 · 3 评论 -
Mahout基于项目的协同过滤算法源码分析(5)--推荐
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit。接上篇,本篇分析该算法的最后一个job。在上篇计算共生矩阵的乘积后,接下来又到了一个shouldRunNextPhase的方法了,这个方法里面含有三个prepareJob,但是本次只分析一个,为啥?因为在实战中没有设置filterFile,这里其实是可以设置filterFile的,设置这个参数的作原创 2013-10-17 00:17:07 · 4672 阅读 · 5 评论 -
Mahout贝叶斯算法开发思路(拓展篇)1
首先说明一点,此篇blog解决的问题是就下面的数据如何应用mahout中的贝叶斯算法?(这个问题是在上篇(。。。完结篇)blog最后留的问题,如果想直接使用该工具,可以在mahout贝叶斯算法拓展下载):0.2 0.3 0.4:10.32 0.43 0.45:10.23 0.33 0.54:12.4 2.5 2.6:22.3 2.2 2.1:25.4 7.2 7.2:35.6原创 2013-09-14 14:28:04 · 5965 阅读 · 5 评论 -
Mahout协同过滤算法源码分析(3-2)--QR分解数据流
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit。接上篇,当数据准备完成后,就可以来分析其数据流了。首先要分析的是new QRDecomposition(Ai),这个初始化QRDecomposition就做了好多的事情,具体分析如下:先贴上源码,然后再分析:public QRDecomposition(Matrix a) {原创 2013-10-06 18:32:02 · 2885 阅读 · 0 评论 -
Mahout协同过滤算法源码分析(4)--评价和推荐
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit。首先来总结一下 mahout算法源码分析之Collaborative Filtering with ALS-WR (三),这个写了三篇,基本都是写QR分解,然后矩阵进过处理得到U或者M的过程,但是还是没有讲出个所以然来。mahout官网上说其是根据这篇文献得来的Large-scale Parall原创 2013-10-08 19:42:28 · 4206 阅读 · 1 评论 -
Mahout并行频繁集挖掘算法源码分析--读取最后结果
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit。本来打算分析Parallel Frequent Pattern Mining算法的源码的,但是看到之前的blog感觉这个算法好像分析的比较详细了,所以这里就不再进行分析了,只写个最后读取结果频繁项集序列文件的代码好了:下面的代码可以自己编写getRegex函数,来对输出的TopKStringPat原创 2013-10-24 01:26:21 · 3503 阅读 · 0 评论 -
Mahout源码分析之DistributedLanczosSolver(2)--Job1
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit。在上篇blog中的最后终端的信息可以看到,svd算法一共有四个Job任务。下面通过Mahout中DistributedLanczosSolver源代码来一个个分析:为了方便后面的数据随时对照,使用wine.dat修改后的数据,如下(5行,13列):14.23,1.71,2.43,15.6,原创 2013-10-29 00:13:32 · 3468 阅读 · 2 评论 -
Mahout源码分析之DistributedLanczosSolver(4)--rawEigen
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit。接上篇,eigen分解,额,太复杂了,人太浮躁了,静不下来分析(说java对矩阵操作支持度不足,额,好吧是外部原因)。eigen分解的是triDiag矩阵,这个矩阵,上篇求得的结果是:[[0.315642761491587, 0.9488780991876485, 0.0], [0.948原创 2013-10-30 00:30:34 · 2858 阅读 · 0 评论 -
Mahout源码分析之DistributedLanczosSolver(7)--总结篇
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的一个值),那么最后得到的结果应该是ori原创 2013-10-31 01:10:51 · 3573 阅读 · 8 评论 -
Hadoop Web项目--Mahout0.10 MR算法集锦
此项目是在《Hadoop Web项目--Friend Find系统基础》之上整理Mahout0.10版本中MR程序的调用测试而成,重点演示如何调用Mahout0.10的MR算法、如何把MR算法嵌入到Web项目中,附带数据生成及数据查看、MR 任务监控等功能。里面含有了常用工具类、聚类算法、分推荐算法等的MR调用mahout命令以及其对应的实现类。原创 2015-08-18 17:52:02 · 3917 阅读 · 0 评论 -
Mahout随机森林算法源码分析(3)--TestForest
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit。首先贴上调用TestForest的代码(win7下面myeclipse调用TestForest,这里要设置Configuration,所以不能直接TestForest.main()来调用):package mahout.fansy.partial.test;import org.apach原创 2013-09-25 00:47:29 · 6085 阅读 · 22 评论 -
Mahout贝叶斯算法源码分析(6)
首先更正前篇博客中的错误的地方,看图即可看出来:原创 2013-09-04 01:12:59 · 3048 阅读 · 0 评论 -
Mahout贝叶斯算法源码分析(3)
接着上篇seq2sparse系列,本次主要分析TFParitialVectorReducer的源码。打开该类文件,首先分析逻辑流。TFParitialVectorReducer有两个函数分别是setup和reduce,setup函数,主要是读取基本的参数设置,然后就是读取一个相对来说比较重要的变量(从文件中读取),如下代码:// key is word value is id fo原创 2013-09-02 19:47:46 · 2935 阅读 · 0 评论 -
Mahout贝叶斯算法源码分析(2-1)
seq2sparse对应于mahout中的org.apache.mahout.vectorizer.SparseVectorsFromSequenceFiles,从昨天跑的算法中的任务监控界面可以看到这一步包含了7个Job信息,分别是:(1)DocumentTokenizer(2)WordCount(3)MakePartialVectors(4)MergePartialVectors(5)Vect原创 2013-08-29 01:42:49 · 3894 阅读 · 3 评论 -
Mahout并行频繁集挖掘算法源码分析(1)--实战
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit。本系列分析Parallel Frequent Pattern Mining源码,本篇作为第一篇,首先进行实战,实战参考mahout官网内容。这里主要是测试sequential和mapreduce模式下对数据处理的耗时分析,使用数据为:retail.dat,前面几条数据如下:0 1 2 3 4原创 2013-10-22 00:32:57 · 4331 阅读 · 6 评论 -
Mahout贝叶斯分类后数据解析
mahout0.7,hadoop1.0.4运行本示例,参考:http://blog.youkuaiyun.com/fansy1990/article/details/11681565.首先,贴上原始数据:0.2,0.3,0.4:10.32,0.43,0.45:10.23,0.33,0.54:12.4,2.5,2.6:22.3,2.2,2.1:25.4,7.2,7.2:35.6,7,6:原创 2014-01-20 00:17:55 · 4767 阅读 · 8 评论 -
Mahout关联规则源码分析(1)
最近看了关联规则的相关算法,着重看了mahout的具体实现,mahout官网上面给出了好多算法,具体网址如下:https://cwiki.apache.org/confluence/display/MAHOUT/Parallel+Frequent+Pattern+Mining 。先说下命令行运行关联规则,关联规则的算法在mahout-core-0,7.jar包下面,命令行运行如下:fa原创 2012-11-01 18:35:18 · 8257 阅读 · 5 评论 -
Mahout决策树算法源码分析(3-1)建树实战
上篇主要分析了Partial Implementation的建树主要操作,下面就自己使用mahout的源码自己实战一下:(注意:所建的MR工程需要导入下面的包:http://download.youkuaiyun.com/detail/fansy1990/5030740,否则看不到console里面的提示)新建如下的类文件:package org.fansy.forest.test;imp原创 2013-01-26 14:33:17 · 3378 阅读 · 0 评论