Map:
Vector featureVector = features.get();
if (featureVector.size() < minVectorSize) {
return;
}
// Initialize the MinHash values to highest
for (int i = 0; i < numHashFunctions; i++) {
minHashValues[i] = Integer.MAX_VALUE;
}
for (int i = 0; i < numHashFunctions; i++) {
for (Vector.Element ele : featureVector.nonZeroes()) {
int value = hashValue ? (int) ele.get() : ele.index();
bytesToHash[0] = (byte) (value >> 24);
bytesToHash[1] = (byte) (value >> 16);
bytesToHash[2] = (byte) (value >> 8);
bytesToHash[3] = (byte) value;
int hashIndex = hashFunction[i].hash(bytesToHash);
//if our new hash value is less than the old one, replace the old one
if (minHashValues[i] > hashIndex) {
minHashValues[i] = hashIndex;
}
}
}
// output the cluster information
for (int i = 0; i < numHashFunctions; i++) {
StringBuilder clusterIdBuilder = new StringBuilder();
for (int j = 0; j < keyGroups; j++) {
clusterIdBuilder.append(minHashValues[(i + j) % numHashFunctions]).append('-');
}
//remove the last dash
clusterIdBuilder.deleteCharAt(clusterIdBuilder.length() - 1);
cluster.set(clusterIdBuilder.toString());
if (debugOutput) {
vector.set(featureVector);
context.write(cluster, vector);
} else {
context.write(cluster, item);
}
}
protected void reduce(Text cluster, Iterable<Writable> points, Context context)
throws IOException, InterruptedException {
Collection<Writable> pointList = Lists.newArrayList();
for (Writable point : points) {
if (debugOutput) {
Vector pointVector = ((VectorWritable) point).get().clone();
Writable writablePointVector = new VectorWritable(pointVector);
pointList.add(writablePointVector);
} else {
Writable pointText = new Text(point.toString());
pointList.add(pointText);
}
}
if (pointList.size() >= minClusterSize) {
context.getCounter(Clusters.ACCEPTED).increment(1);
for (Writable point : pointList) {
context.write(cluster, point);
}
} else {
context.getCounter(Clusters.DISCARDED).increment(1);
}
}
相关推荐
这个压缩包包含的是Mahout项目不同版本的核心库,分别是mahout-core-0.9.jar、mahout-core-0.8.jar和mahout-core-0.1.jar。这些版本的差异在于功能的完善、性能的优化以及对新特性的支持。 1. **Mahout核心功能**:...
Mahout 聚类算法 Mahout 聚类算法是数据挖掘和机器学习领域中的一种重要算法,它可以将相似的数据点聚集在一起,以便更好地理解和分析数据。Mahout 聚类算法可以分为多种类型,如 Canopy、KMeans、Fuzzy-KMeans、...
"mahout-distribution-0.9.tar.gz"是Apache Mahout的0.9版本的发行包,包含了完整的源代码、文档和所需的依赖库。 **一、Mahout的背景与目标** Apache Mahout项目始于2008年,旨在简化大规模机器学习过程,提供可...
在"apache-mahout-distribution-0.11.0-src.zip"这个压缩包中,您将找到Mahout 0.11.0版本的源代码,这对于开发者和研究者来说是一个宝贵的资源,他们可以深入理解算法的内部工作原理,进行定制化开发或优化。...
mahout-0.9-cdh5.5.0.tar.gz
mahout-integration-0.7mahout-integration-0.7mahout-integration-0.7mahout-integration-0.7
Apache Mahout是一个可扩展的机器学习库,主要用于聚类、分类、推荐以及频繁项集挖掘等多种场景。 由于该文件强调了是中文高清版,我们可以推测这本书是专为中文读者准备,针对Mahout版本的内容讲解详细,同时高...
《Apache Maven与Mahout实战:基于maven_mahout_template-mahout-0.8的探索》 Apache Maven是一款强大的项目管理和依赖管理工具,广泛应用于Java开发领域。它通过一个项目对象模型(Project Object Model,POM)来...
mahout-core-0.9.jar,支持版本hadoop-2.2.x,由mahout-distribution-0.9.tar.gz源码构建生成jar包。
在Mahout-distribution-0.8-src这个源代码包中,我们可以深入理解其内部机制,同时也为开发者提供了实现自定义机器学习模型的可能。 一、Mahout 0.8概览 Mahout 0.8 版本是该项目的一个重要里程碑,它包含了丰富的...
重新编译mahout-examples-0.9-job.jar,增加分类指标:最小最大精度、召回率。详情见http://blog.csdn.net/u012948976/article/details/50203249
标题中的"mahout-distribution-0.9-src.zip"指的是Mahout项目在0.9版本的源代码分布,这对于开发者来说是一个宝贵的资源,可以深入理解其内部实现并进行定制化开发。 Apache Mahout的核心特性主要体现在以下几个...
mahout-distribution-0.5-src.zip mahout 源码包
mahout-math-0.8.jar mahout-math-0.8.jar
这个压缩包“mahout-distribution-0.12.2-src.tar.gz”是Mahout项目的一个源码版本,版本号为0.12.2,提供给开发者进行深度研究和定制化开发。在解压后的文件“apache-mahout-distribution-0.12.2”中,我们可以找到...
mahout-examples-0.10.1-job.jar 已经包含分词程序,替换掉mahout默认的jar包
mahout-distribution-0.10.0-src.tar.gz
"mahout-distribution-0.9含jar包" 是一个包含了Mahout项目0.9版本的预编译二进制文件集合,其中不包含源代码,适合那些希望直接使用Mahout功能而不需要进行编译或开发的用户。 在Mahout 0.9版本中,你可以找到以下...
mahout中需要用到的一个版本jar包:mahout-core-0.3.jar
apache-mahout-distribution-0.12.1.tar.gz 开源版本 .