聚类:把相似的东西分到一组,是无监督学习。

聚类算法的分类

(1)基于划分聚类算法(partition clustering):建立数据的不同分割,然后用相同标准评价聚类结果。(比如最小化平方误差和)

典型算法:k-means、k-medoids

K-means 基本假设:对于每一个 cluster ,可以选出一个中心点,使得该 cluster 中的所有点到该中心点的距离小于到其他 cluster 的中心的距离。

算法步骤:

1、选择K个点作为初始中心;

2、Repeat

3、      将每个点归类到最近的中心,形成K个簇;

4、      重新计算每个簇的中心;

5、Until  簇的中心不再变化或迭代了最大的步数。

k-medoids:k-medoids 和 k-means 不一样的地方在于中心点的选取,在 k-means 中,我们将中心点取为当前 cluster 中所有数据点的平均值,而在 k-medoids 中,我们将中心点的选取限制在当前 cluster 所包含的数据点的集合中。即我们将从当前 cluster 中选取这样一个点——它到其他所有(当前 cluster 中的)点的距离之和最小——作为中心点。 k-medoids 对数据的要求比 k-means 要低。

(2)基于模型的聚类算法:对于每个类假定一个分布模型,试图找到每个类最好的模型。该方法主要分为基于概率模型的方法和基于神经网络模型的方法。

概率模型主要指概率生成模型(generative Model),同一”类“的数据属于同一种概率分布,这种方法的优点就是对”类“的划分不那么”坚硬“,而是以概率形式表现,每一类的特征也可以用参数来表达;但缺点就是执行效率不高,特别是分布数量很多并且数据量很少的时候。其中最典型、也最常用的方法就是高斯混合模型(GMM),GMM和k-means很像,不过GMM是学习出一些概率密度函数来,简单地说,k-means的结果是每个数据点被分配到其中某一个cluster了,而GMM则给出这些数据点被分配到每个cluster的概率,又称作 soft assignment 。

基于神经网络模型的方法主要指SOM(Self Organized Maps)。

(3)降维算法: 先降维,再聚类

典型算法:Spectral clustering,Ncut

(4)基于层次聚类算法(hierarchical method):对给定的数据对象集合进行层次的分解,根据层次的形成方法,又可以分为凝聚和分裂方法两大类;层次聚类的关键是度量相似性,常用的就是欧式距离(向量对应分量差的组合)和绝对值距离(向量间距离)。

典型算法:BIRCH、CURE、ROCK、CHEMALOEN等。

(5)基于密度聚类算法:根据领域对象的密度或者某种密度函数来生成聚类,使得每个类在给定范围的区域内必须至少包含一定数目的点;

典型算法:DBSCAN、OPTICS

(6)基于网格的聚类算法:将对象空间量化为有限数目的单元,形成一个网格结构,使所有聚类操作都在这个网格结构上进行,使聚类速度得到较大提高;

典型算法:STING、CLIQUE

聚类clustering的更多相关文章

  1. Stanford机器学习笔记-9. 聚类(Clustering)

    9. Clustering Content 9. Clustering 9.1 Supervised Learning and Unsupervised Learning 9.2 K-means al ...

  2. sklearn:聚类clustering

    http://blog.csdn.net/pipisorry/article/details/53185758 不同聚类效果比较 sklearn不同聚类示例比较 A comparison of the ...

  3. 机器学习课程-第8周-聚类(Clustering)—K-Mean算法

    1. 聚类(Clustering) 1.1 无监督学习: 简介 在一个典型的监督学习中,我们有一个有标签的训练集,我们的目标是找到能够区分正样本和负样本的决策边界,在这里的监督学习中,我们有一系列标签 ...

  4. 机器学习之&&Andrew Ng课程复习--- 聚类——Clustering

    第十三章.聚类--Clustering ******************************************************************************** ...

  5. [C8] 聚类(Clustering)

    聚类(Clustering) 非监督学习:简介(Unsupervised Learning: Introduction) 本章节介绍聚类算法,这是我们学习的第一个非监督学习算法--学习无标签数据,而不 ...

  6. 机器学习(九)-------- 聚类(Clustering) K-均值算法 K-Means

    无监督学习 没有标签 聚类(Clustering) 图上的数据看起来可以分成两个分开的点集(称为簇),这就是为聚类算法. 此后我们还将提到其他类型的非监督学习算法,它们可以为我们找到其他类型的结构或者 ...

  7. 机器学习-聚类(clustering)算法:K-means算法

    1. 归类: 聚类(clustering):属于非监督学习(unsupervised learning) 无类别标记(class label) 2. 举例: 3. Kmeans算法 3.1 clust ...

  8. 海量数据挖掘MMDS week5: 聚类clustering

    http://blog.csdn.net/pipisorry/article/details/49427989 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...

  9. [综]聚类Clustering

    Annie19921223的博客 [转载]用MATLAB做聚类分析 http://blog.sina.com.cn/s/blog_9f8cf10d0101f60p.html Free Mind 漫谈 ...

随机推荐

  1. Struts 404 The requested resource is not available

    出现这种错误一般是struts.xml配置错误,重点针对<action> 的class属性的全名 因为struts感觉应该是先加载所有的配置文件,如果配置文件有错误的话,所有的资源就都无效 ...

  2. 读取input:file的路径并显示本地图片的方法

    <!doctype html> <html> <head> <meta content="text/html; charset=UTF-8" ...

  3. C++之路进阶——codevs1362(网络扩容)

    1362 网络扩容 省队选拔赛  时间限制: 2 s  空间限制: 128000 KB  题目等级 : 大师 Master     题目描述 Description 给定一张有向图,每条边都有一个容量 ...

  4. android studio 引入第三方类库jar包

    第三方类库jar包 这就简单多了,直接将jar包拷贝到app/libs下,然后在app下的build.gradle中添加此jar的依赖.如下: dependencies { compile 'com. ...

  5. storyboard

    一,代码动态改写 1,一般程序启动就自动执行 main.storyboard 也可以在AppDelegate改写 - (BOOL)application:(UIApplication *)applic ...

  6. 【群论】polya定理

    对Polya定理的个人认识     我们先来看一道经典题目:     He's Circles(SGU 294)         有一个长度为N的环,上面写着“X”和“E”,问本质不同的环有多少个(不 ...

  7. 创建空列表遇到的问题-RF

    正确的方法:使用Create List,后面为空即可

  8. Linux之grep命令详解

    简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...

  9. UICollectionViewDelegateFlowLayout 使用

    import UIKit //UICollectionViewLayout //itemSize属性 //设定全局的Cell尺寸,如果想要单独定义某个Cell的尺寸,可以使用下面方法: // - (C ...

  10. Maven单元测试报告及测试覆盖率

     对junit单元测试的报告:类似这样的结果 ------------------------------------------------------- T E S T S ----------- ...