
降维
文章平均质量分 87
fansy1990
这个作者很懒,什么都没留下…
展开
-
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(1)--实战
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.原创 2013-10-28 00:32:58 · 4064 阅读 · 5 评论 -
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源码分析之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(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源码分析之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 评论