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

聚类算法的分类

(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

最新文章

  1. D3.js学习(二)
  2. java 部分隐藏字段
  3. flddler使用方法
  4. python学习之路-day2-pyth基础2
  5. hao.360.cn不停跳....
  6. Linux命令-mkdir
  7. Cocos2d-JS中的精灵菜单和图片菜单
  8. JavaScript电话号码正则
  9. Lintcode--009(单词切分)
  10. 在OpenCV中利用鼠标绘制矩形和截取图像的矩形区域
  11. ORACLE数据库常见问题汇总
  12. oracle常用命令【转载】
  13. 用IDEA在Tomcat上部署项目
  14. aws中的路由表
  15. iOS 即时视频和聊天(基于环信)
  16. VS报错 error LNK2005: _DllMain@12 已经在 MSVCRTD.lib(dllmain.obj) 中定义
  17. linux基础和vim基本使用
  18. golang web实战之一(beego,mvc postgresql)
  19. ConcurrentDictionary与Dictionary 替换
  20. lr场景异常Continuing after Error -26479: Conversion of form submission data to the target charset failed: U_TRUNCATED_CHAR_FOUND解决方法

热门文章

  1. js 给样式添加随机颜色
  2. Java集合容器简介
  3. PHP 5.4 on CentOS/RHEL 6.4 and 5.9 via Yum
  4. POJ 2104 K-th Number(主席树——附讲解)
  5. windows系统调用 遍历进程的虚拟地址
  6. C# httprequest post 内容有百分号,部分特殊字符乱码问题
  7. .NET中通過OUTLOOK發送附件內容
  8. SpringMVC 手动控制事务提交
  9. Prince2的七大原则(7)
  10. hibernate映射的 关联关系:有 一对多关联关系,一对一关联关系,多对多关联关系,继承关系