Mahout源码分析-K-means聚类算法

一 算法描述

1、随机选取k个对象作为初始簇中心;

2、计算每个对象到簇中心的距离,将每个对象聚类到离该对象最近的聚簇中去;

3、计算每个聚簇中的簇均值,并将簇均值作为新的簇中心;

4、计算准则函数;

5、重复(2)、(3)和(4),直到准则函数不再发生变化。

二 源码分析

Mahout源码分析-K-means聚类算法

时间: 2024-11-08 02:05:53

Mahout源码分析-K-means聚类算法的相关文章

Mahout源码分析:并行化FP-Growth算法

FP-Growth是一种常被用来进行关联分析,挖掘频繁项的算法.与Aprior算法相比,FP-Growth算法采用前缀树的形式来表征数据,减少了扫描事务数据库的次数,通过递归地生成条件FP-tree来挖掘频繁项.参考资料[1]详细分析了这一过程.事实上,面对大数据量时,FP-Growth算法生成的FP-tree非常大,无法放入内存,挖掘到的频繁项也可能有指数多个.本文将分析如何并行化FP-Growth算法以及Mahout中并行化FP-Growth算法的源码. 1. 并行化FP-Growth 并行

OpenStack_Swift源码分析——Ring的rebalance算法源代码详细分析

今天有同学去百度,带回一道面试题,和大家分享一下: 打印: n=1 1 n=2 3 3 2 4 1 1 4 5 5 n=3 7 7 7 7 6 8 3 3 2 6 8 4 1 1 6 8 4 5 5 5 8 9 9 9 9 提供一段参考程序: <pre name="code" class="cpp">// ConsoleApplication1.cpp: 主项目文件. #include "stdafx.h" #include &quo

Weka算法Classifier-tree-J48源码分析(一)算法和基本数据结构

大概一年没打理博客了,重新拿起笔不知道该从哪里写起,想来想去就从最近手头用的Weka写起吧. Weka为一个Java基础上的机器学习工具,上手简单,并提供图形化界面,提供如分类.聚类.频繁项挖掘等工具,本篇文章主要写一下分类器算法中的J48算法及其实现. 一.算法 J48是基于C4.5实现的决策树算法,对于C4.5算法相关资料太多了,笔者在这里转载一部分(来源:http://blog.csdn.net/zjd950131/article/details/8027081) C4.5是一系列用在机器

zookeeper源码分析二FASTLEADER选举算法

如何在zookeeper集群中选举出一个leader,zookeeper使用了三种算法,具体使用哪种算法,在配置文件中是可以配置的,对应的配置项是”electionAlg”,其中1对应的是LeaderElection算法,2对应的是AuthFastLeaderElection算法,3对应的是FastLeaderElection算法.默认使用FastLeaderElection算法.其他两种算法我没有研究过,就不多说了. 要理解这个算法,最好需要一些paxos算法的理论基础. 1) 数据恢复阶段首

Weka算法Classifier-tree-RandomForest源码分析(一)算法

RandomForest 一.算法介绍 RandomForest应该算是一个特别简单但是有效的算法,其核心思想是通过训练和组合不同的决策树,形成森林,最后的分类结果由这多棵树进行投票来决定. 在介绍RandomForest之前,首先介绍一下Tree Bagging 二.Bagging Bagging又叫做Booststrap Aggregatiing,也是一种组合多个分类器来得到一个能力更强的分类器的方法,其训练过程分两步: 1.对训练集进行有放回的抽样N次,得到训练集的一个子集作为新训练集,并

Openck_Swift源码分析——增加、删除设备时算法具体的实现过程

1 初始添加设备后.上传Object的具体流程 前几篇博客中,我们讲到环的基本原理即具体的实现过程,加入我们在初始创建Ring是执行如下几条命令: ?swift-ring-builder object.builder create 5 3 1 ?swift-ring-builder object.builder add z1-127.0.0.1:6010/sdb1 100 ?swift-ring-builder object.builder add z2-127.0.0.1:6020/sdb2 

K-近邻算法的Python实现 : 源码分析

网上介绍K-近邻算法的例子很多,其Python实现版本基本都是来自于机器学习的入门书籍<机器学习实战>,虽然K-近邻算法本身很简单,但很多初学者对其Python版本的源代码理解不够,所以本文将对其源代码进行分析. 什么是K-近邻算法? 简单的说,K-近邻算法采用不同特征值之间的距离方法进行分类.所以它是一个分类算法. 优点:无数据输入假定,对异常值不敏感 缺点:复杂度高 好了,直接先上代码,等会在分析:(这份代码来自<机器学习实战>) def classify0(inx, data

OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波

http://blog.csdn.net/chenyusiyuan/article/details/8710462 OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波 2013-03-23 17:44 16963人阅读 评论(28) 收藏 举报 分类: 机器视觉(34) 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] KAZE系列笔记: OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波 OpenCV学习笔记(28)KA

Java集合源码分析(七)HashMap&lt;K, V&gt;

一.HashMap概述 HashMap基于哈希表的 Map 接口的实现.此实现提供所有可选的映射操作,并允许使用 null 值和 null 键.(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同.)此类不保证映射的顺序,特别是它不保证该顺序恒久不变. 值得注意的是HashMap不是线程安全的,如果想要线程安全的HashMap,可以通过Collections类的静态方法synchronizedMap获得线程安全的HashMap. Map map = Coll