改用MyAnalyzer的KMeans聚类算法
<strong><span style="font-size:18px;">/**** @author YangXin* @info 改用MyAnalyzer的KMeans聚类算法*/
package unitTen;
import java.io.File;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.SequenceFile;
import org.apache.lucene.analysis.Analyzer;
import org.apache.mahout.clustering.Cluster;
import org.apache.mahout.clustering.kmeans.KMeansDriver;
import org.apache.mahout.clustering.kmeans.RandomSeedGenerator;
import org.apache.mahout.common.HadoopUtil;
import org.apache.mahout.common.distance.CosineDistanceMeasure;
import org.apache.mahout.vectorizer.DictionaryVectorizer;
import org.apache.mahout.vectorizer.DocumentProcessor;
import org.apache.mahout.vectorizer.tfidf.TFIDFConverter;
public class NewsKMeansClustering {public static void main(String args[]) throws Exception {int minSupport = 5;int minDf = 5;int maxDFPercent = 99;int maxNGramSize = 1;int minLLRValue = 50;int reduceTasks = 1;int chunkSize = 200;int norm = -1;boolean sequentialAccessOutput = true;String inputDir = "reuters-seqfiles";File inputDirFile = new File(inputDir);Configuration conf = new Configuration();FileSystem fs = FileSystem.get(conf);String outputDir = "newsClusters";HadoopUtil.delete(conf, new Path(outputDir));Path tokenizedPath = new Path(outputDir,DocumentProcessor.TOKENIZED_DOCUMENT_OUTPUT_FOLDER);MyAnalyzer analyzer = new MyAnalyzer();DocumentProcessor.tokenizeDocuments(new Path(inputDir), analyzer.getClass().asSubclass(Analyzer.class), tokenizedPath, conf);DictionaryVectorizer.createTermFrequencyVectors(tokenizedPath,new Path(outputDir), conf, minSupport, maxNGramSize, minLLRValue, 2, true, reduceTasks,chunkSize, sequentialAccessOutput, false);TFIDFConverter.processTfIdf(new Path(outputDir , DictionaryVectorizer.DOCUMENT_VECTOR_OUTPUT_FOLDER),new Path(outputDir), conf, chunkSize, minDf,maxDFPercent, norm, true, sequentialAccessOutput, false, reduceTasks);Path vectorsFolder = new Path(outputDir, "tfidf-vectors");Path centroids = new Path(outputDir, "centroids");Path clusterOutput = new Path(outputDir, "clusters");RandomSeedGenerator.buildRandom(conf, vectorsFolder, centroids, 20,new CosineDistanceMeasure());KMeansDriver.run(conf, vectorsFolder, centroids, clusterOutput,new CosineDistanceMeasure(), 0.01, 20, true, false);SequenceFile.Reader reader = new SequenceFile.Reader(fs,new Path(clusterOutput, Cluster.CLUSTERED_POINTS_DIR+ "/part-m-00000"), conf);}
}
</span></strong>
改用MyAnalyzer的KMeans聚类算法相关推荐
- k-means聚类算法的详解和实现
一.相异度计算 在正式讨论聚类前,我们要先弄清楚一个问题:如何定量计算两个可比较元素间的相异度.用通俗的话说,相异度就是两个东西差别有多大,例如人类与章鱼的相异度明显大于人类与黑猩猩的相异度,这是能 ...
- java iris_利用K-Means聚类算法实现对iris.data.ulab
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 利用K-Means聚类算法实现对iris.data.ulabel数据的聚类,这是在网上找到如果要换成我的iris.date iris.date.ulabl ...
- k-means聚类算法从入门到精通
k-means算法是非监督聚类最常用的一种方法,因其算法简单和很好的适用于大样本数据,广泛应用于不同领域,本文详细总结了k-means聚类算法原理 . 目录 1. k-means聚类算法原理 2. k ...
- 基于K-Means聚类算法的主颜色提取
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 01.简介 本期我们将一起实现基于K-Means聚类算法的主色提取 ...
- K-means聚类算法和模糊C-means聚类算法
K-means聚类算法和模糊C-means聚类算法 1.K-means聚类算法 K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数, ...
- 基于Kmeans聚类算法的图像分割(色彩分割)实战
基于Kmeans聚类算法的图像分割(色彩分割)实战 图像分割是将一幅图像分割成多个像素区域的任务.属于同一对象类型的所有像素都被分配到同一类别下.图像分类是给一副完整的图像一个类别,目标检测是检测到图 ...
- 基于经典的机器学习k-means聚类算法实现对三通道图片的压缩操作
https://www.toutiao.com/a6573221465104056846/ 压缩图片的原理 k-means算法实现图像的压缩是k-means聚类算法的一个经典的应用,它把一个彩色图压缩 ...
- K-means聚类算法的三种改进(K-means++,ISODATA,Kernel K-means)介绍与对比
原文:http://www.cnblogs.com/yixuan-xu/p/6272208.html K-means聚类算法的三种改进(K-means++,ISODATA,Kernel K-means ...
- K-Means聚类算法进行压缩图片
K-Means聚类算法(二):算法实现及其优化 清雨影 2 年前 (最近在车间干活的时候把手砸伤了,所以打字还是有点不便,大家原谅我更新的慢,加上赞比较少,心情比较低落TAT) 首先介绍一下题图,这个 ...
最新文章
- jQuery+php+ajax实现无刷新上传文件功能
- 第三章	Selenide测试框架(三)
- 数据分析学习笔记——数据可视化
- 蚂蚁金服疯了吗?大动作,非裁员,年底全员涨薪又涨假期!!!
- chromebook刷机_如何为不支持Chrome操作系统的网站欺骗Chromebook用户代理
- YbtOJ#763-攻城略池【线段树合并】
- Hive启动报错org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeE...
- Oracle Form Builder
- git 21天打卡day10-创建昵称分支并切换
- 前端面试:如何修改overflow:scroll 滚动条的默认样式-如背景色以及宽度
- 单尺度retinex算法 matlab,单尺度retinex算法
- 安装ie11提示计算机安装了更新的版本,离线安装IE11浏览器提示quot;获取更新quot;解决方法 - 191路由网...
- 西门子1200PLC(入门)2
- ASP.NET身份验证和授权,使用cookie和Claims认证
- QA_java BufferedReader.readLine_出现第一个字符无法读取的问题
- 苹果 iOS 15.5更新了哪些功能 苹果 iOS 15.5值得更新吗
- LiveData更新数据报错java.lang.IllegalStateException: Cannot invoke setValue on a background thread
- 基于Python实现的微信好友数据分析
- 【JPA】SpringData JPA
- 【报告分享】衣物护理生活小电器—消毒、干衣需求创新报告-TMIC消费者洞察(附下载)