转:http://blog.csdn.net/aidayei/article/details/6674135
在Mahout_in_Action这本书中,给了一个文本的聚类实例,并提供了原始输入数据,下面结合例子说明
作为聚类算法的主要应用场景 - 文本分类,对文本信息的建模也是一个常见的问题。在信息检索研究领域已经有很好的建模方式,就是信息检索领域中最常用的向量空间模型
词频 - 逆向文本频率 (Term Frequency – Inverse Document Frequency, TF-IDF):它是对 TF 方法的一种加强,字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在所有文本中出现的频率成反比下降。举个例子,对于“高频无意义词汇”,因为它们大部分会出现在所有的文本中,所以它们的权重会大打折扣,这样就使得文本模型在描述文本特征上更加精确。在信息检索领域,TF-IDF 是对文本信息建模的最常用的方法。
对于文本信息的向量化,Mahout 已经提供了工具类,它基于 Lucene 给出了对文本信息进行分析,然后创建文本向量。下面给出了一个例子,分析的文本数据是路透提供的新闻数据。将数据集下载后,放在“src/test/input”目录下。数据集下载地址:http://www.daviddlewis.com/resources/testcollections/reuters21578/
1. 将路透的数据解压缩,Mahout 提供了专门的方法
File inputFolder = new File("src/test/input");
File outputFolder = new File("src/test/input-extracted");
ExtractReuters extractor = new ExtractReuters(inputFolder, outputFolder);
extractor.extract();
2. 将数据存储成 SequenceFile
mahout直接进供了seqdirectory方法来将字符文本转成SequenceFile,可以直接bin/mahout seqdirectory -h,查看一下这个命令的帮助,将输入和输出参数设好,这里的输入就直接用上一步提取出的文本,目录在"src/test/input-extracted"
3.将 SequenceFile 文件中的数据,基于 Lucene 的工具进行向量化
mahout直接提供了seq2sparse命令来转向量,可以直接bin/mahout seq2sparse -h,查看一下这个命令的帮助,输入为第二步的输出
生成的向量化文件的目录结构是这样的:
- df-count 目录:保存着文本的频率信息
- tf-vectors 目录:保存着以 TF 作为权值的文本向量
- tfidf-vectors 目录:保存着以 TFIDF 作为权值的文本向量
- tokenized-documents 目录:保存着分词过后的文本信息
- wordcount 目录:保存着全局的词汇出现的次数
- dictionary.file-0 目录:保存着这些文本的词汇表
- frequcency-file-0 目录 : 保存着词汇表对应的频率信息。
再用mahout kmeans进行聚类,输入参数为tf-vectors 目录下的文件,如果整个过程没错,就可以看到输出结果目录clusters-N
最后可以用mahout提供的结果查看命令mahout clusterdump来分析聚类结果
分享到:
相关推荐
Mahout 聚类算法可以分为多种类型,如 Canopy、KMeans、Fuzzy-KMeans、Spectral Clustering 等,每种算法都有其自己的特点和应用场景。 在 Mahout 聚类算法中,数据模型是数据的基本结构,它可以是 DenseVector、...
本文将详细探讨如何使用Java实现KMeans算法进行文本聚类,并结合TF-IDF(Term Frequency-Inverse Document Frequency)权重来计算文本相似度。 1. KMeans算法概述 KMeans算法是一种迭代的中心点方法,它将数据集...
在Java环境中实现KMeans算法进行文本聚类,可以为大数据分析、信息检索和推荐系统等应用场景提供有力支持。 KMeans算法的基本思想是通过迭代过程,不断调整样本的归属,使得同一簇内的样本尽可能接近,不同簇间的...
在IT领域,尤其是数据分析与机器学习方向,Apache Mahout是一个广受好评的开源项目,它提供了许多用于构建智能应用程序的算法。Mahout的核心是它的聚类、分类、推荐系统和频繁项挖掘等算法,其中Canopy和K-means是其...
在进行KMeans聚类时,还需要注意一些关键点: - **预处理**:数据可能需要进行标准化或归一化,以便所有特征在同一尺度上。 - **选择合适的K值**:K值的选择对结果影响很大,可以使用肘部法则或轮廓系数来确定最佳的...
下面我们将深入探讨KMeans聚类的基本原理、Java实现的关键步骤以及如何进行测试和分析结果。 KMeans算法的核心思想是通过迭代过程将数据点分配到最近的聚类中心,然后更新这些中心为该聚类所有点的平均值。主要步骤...
《深入理解Mahout中的KMeans聚类算法》 在数据挖掘和机器学习领域,聚类是一种常用的技术,用于发现数据集中的自然群体或类别。Apache Mahout作为一个强大的开源机器学习库,提供了多种聚类算法,其中KMeans是最为...
Mahout的目标是帮助开发人员构建智能应用程序,如推荐系统、分类和聚类算法,这些在大数据分析领域中极为重要。 **K-Means聚类算法** K-Means是一种无监督学习的聚类算法,用于将数据集分成不同的群组或类别。在...
Mahout的kmeans聚类测试数据
1. **聚类算法**:KMeans是Mahout中最常见的聚类算法之一。在Hadoop上运行KMeans,可以处理海量数据,对大量用户行为、网站访问记录或者地理定位数据进行分组,发现潜在的模式或群体。此外,Mahout还支持其他聚类...
kmeans聚类算法 基于划分的方法单机版基于学习
在实际应用中,聚类分析广泛应用于模式识别、数据分析、图像处理和市场研究等场景。例如,它常用于Web文档分类,构建有效的信息检索和发布系统,通过分析内容的聚类情况,可以洞察热门话题的发展趋势,了解用户的...
以上步骤详细介绍了如何在 Mahout 0.9 中运行 KMeans 算法进行数据聚类。请注意,实际操作时可能需要根据你的具体环境配置和数据集调整相关参数,例如 KMeans 中的迭代次数、初始中心点选择策略等。此外,理解 ...
大数据的挖掘是当今的研究热点,也有着巨大的商业价值。新型框架Spark部署在...该文研究了Spark中的机器学习中的聚类算法KMeans,先分析了算法思想,再通过实验分析其应用的方法,然后通过实验结果分析其应用场景和不足。
总结来说,Apache Mahout 0.4版本是一个强大的工具,为开发者和数据分析师提供了实现机器学习任务的高效途径,特别是KMeans聚类、FPM挖掘和协同过滤。通过这个开源项目,即使是对机器学习不熟悉的用户也能处理大数据...
- Kmeans 在推荐系统、聚类分析等领域的应用实例。 综上所述,这份资料涵盖了 Hadoop 相关技术的多个方面,包括分布式搜索引擎构建、数据处理、数据存储以及机器学习算法等。对于希望深入了解 Hadoop 生态系统的...
K-means是最为知名的无监督聚类算法之一,而Coh-kmeans则是其半监督版本,结合了有监督和无监督的学习特性。本篇将深入探讨Coh-kmeans算法以及其Java实现。 ### 1. K-means算法简述 K-means算法基于中心点迭代更新...
Mahout 演示欢迎来到驯象师演示。 开发这个项目是为了展示 mahout 是如何工作的。... 模糊 KMeans 聚类使用 Maven 构建mvn 全新安装执行java -jar mahout-demo-0.0.1-SNAPSHOT-jar-with-dependencies.jar
整套大数据课程从hadoop入门开始,由浅入深,内置“hadoop源码解析与企业应用开发实战”,“Hive开发实战”,“Hbase开发实战”,“Spark,mahout,sqoop,storm诸模块开发实战”,“数据挖掘基础。这个系列课程有几...