<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聚类算法相关推荐

  1. k-means聚类算法的详解和实现

    一.相异度计算  在正式讨论聚类前,我们要先弄清楚一个问题:如何定量计算两个可比较元素间的相异度.用通俗的话说,相异度就是两个东西差别有多大,例如人类与章鱼的相异度明显大于人类与黑猩猩的相异度,这是能 ...

  2. java iris_利用K-Means聚类算法实现对iris.data.ulab

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 利用K-Means聚类算法实现对iris.data.ulabel数据的聚类,这是在网上找到如果要换成我的iris.date iris.date.ulabl ...

  3. k-means聚类算法从入门到精通

    k-means算法是非监督聚类最常用的一种方法,因其算法简单和很好的适用于大样本数据,广泛应用于不同领域,本文详细总结了k-means聚类算法原理 . 目录 1. k-means聚类算法原理 2. k ...

  4. 基于K-Means聚类算法的主颜色提取

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 01.简介 本期我们将一起实现基于K-Means聚类算法的主色提取 ...

  5. K-means聚类算法和模糊C-means聚类算法

    K-means聚类算法和模糊C-means聚类算法 1.K-means聚类算法 K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方法的代表,它是数据点到原型的某种距离作为优化的目标函数, ...

  6. 基于Kmeans聚类算法的图像分割(色彩分割)实战

    基于Kmeans聚类算法的图像分割(色彩分割)实战 图像分割是将一幅图像分割成多个像素区域的任务.属于同一对象类型的所有像素都被分配到同一类别下.图像分类是给一副完整的图像一个类别,目标检测是检测到图 ...

  7. 基于经典的机器学习k-means聚类算法实现对三通道图片的压缩操作

    https://www.toutiao.com/a6573221465104056846/ 压缩图片的原理 k-means算法实现图像的压缩是k-means聚类算法的一个经典的应用,它把一个彩色图压缩 ...

  8. 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 ...

  9. K-Means聚类算法进行压缩图片

    K-Means聚类算法(二):算法实现及其优化 清雨影 2 年前 (最近在车间干活的时候把手砸伤了,所以打字还是有点不便,大家原谅我更新的慢,加上赞比较少,心情比较低落TAT) 首先介绍一下题图,这个 ...

最新文章

  1. jQuery+php+ajax实现无刷新上传文件功能
  2. 第三章 Selenide测试框架(三)
  3. 数据分析学习笔记——数据可视化
  4. 蚂蚁金服疯了吗?大动作,非裁员,年底全员涨薪又涨假期!!!
  5. chromebook刷机_如何为不支持Chrome操作系统的网站欺骗Chromebook用户代理
  6. YbtOJ#763-攻城略池【线段树合并】
  7. Hive启动报错org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeE...
  8. Oracle Form Builder
  9. git 21天打卡day10-创建昵称分支并切换
  10. 前端面试:如何修改overflow:scroll 滚动条的默认样式-如背景色以及宽度
  11. 单尺度retinex算法 matlab,单尺度retinex算法
  12. 安装ie11提示计算机安装了更新的版本,离线安装IE11浏览器提示quot;获取更新quot;解决方法 - 191路由网...
  13. 西门子1200PLC(入门)2
  14. ASP.NET身份验证和授权,使用cookie和Claims认证
  15. QA_java BufferedReader.readLine_出现第一个字符无法读取的问题
  16. 苹果 iOS 15.5更新了哪些功能 苹果 iOS 15.5值得更新吗
  17. LiveData更新数据报错java.lang.IllegalStateException: Cannot invoke setValue on a background thread
  18. 基于Python实现的微信好友数据分析
  19. 【JPA】SpringData JPA
  20. 【报告分享】衣物护理生活小电器—消毒、干衣需求创新报告-TMIC消费者洞察(附下载)

热门文章

  1. phpcms能做什么呢?有什么作用呢?
  2. VBS去除字符串的重复项并统计重复字符出现的次数
  3. 一. python的collections模块
  4. XYGame-AI设计3-行为树-第1版本
  5. 《Python机器学习——预测分析核心算法》——2.4 基于因素变量的实数值预测:鲍鱼的年龄...
  6. python连接mysql的操作
  7. LeetCode 394: DecodeString (Java)
  8. SSH与EJB 比较
  9. PHP Object对象转换为Array数组
  10. 配色方案--构图必学