mahout算法源码分析之Itembased Collaborative Filtering(一)PreparePreferenceMatrixJob
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit。
本篇分析RecommenderJob的源码,这个类也是继承了AbstractJob,所以也会覆写其run方法,点开这个run方法,可以看到和其他的job类都一样,刚开始都是基本参数的默认值设置和获取;然后到了第一个job,在这个job之前有一个shouldRunNextPhase()函数,点开这个函数看到下面的源码:
if (hasOption("maxPrefsPerUser")) { int samplingSize = Integer.parseInt(getOption("maxPrefsPerUser")); toItemVectors.getConfiguration().setInt(ToItemVectorsMapper.SAMPLE_SIZE, samplingSize); }这个值也是可以设置的,所以现在你知道maxPrefsPerUser的值的用处了。但是这个值的默认是100,实战总的item才7,所以numElementsBeforeSampling - numElementsAfterSampling=0不变。
好了,这个job也分析完了。
分享,成长,快乐
转载请注明blog地址:http://blog.csdn.net/fansy1990