初识聚类算法:K均值、凝聚层次聚类和DBSCAN
来源:互联网 发布:软件开发助理工程师 编辑:程序博客网 时间:2024/05/18 08:00
http://blog.sina.com.cn/s/blog_62186b460101ard2.html
聚类分析就仅根据在数据中发现的描述对象及其关系的信息,将数据对象分组(簇)。其目标是,组内的对象相互之间是相似的,而不同组中的对象是不同的。组内相似性越大,组间差别越大,聚类就越好。
先介绍下聚类的不同类型,通常有以下几种:
(1)层次的与划分的:如果允许簇具有子簇,则我们得到一个层次聚类。层次聚类是嵌套簇的集族,组织成一棵树。划分聚类简单地将数据对象划分成不重叠的子集(簇),使得每个数据对象恰在一个子集中。
(2)互斥的、重叠的与模糊的:互斥的指每个对象都指派到单个簇。重叠的或是模糊聚类用来反映一个对象同时属于多个组的事实。在模糊聚类中,每个数据对象以一个0和1之间的隶属权值属于每个簇。每个对象与各个簇的隶属权值之和往往是1。
(3)完全的与部分的:完全聚类将每个对象指派到一个簇中。部分聚类中,某些对象可能不属于任何组,比如一些噪音对象。
聚类分析后发现的簇往往也具有不同的类型:
(1)明显分离的:簇是对象的集合,不同组中的任意两点之间的距离都大于组内任意两点之间的距离。(1)
(2)基于原型的:簇是对象的集合,其中每个对象到定义该簇的原型的距离比到其他簇的原型的距离更近(或更加相似)。对于具有连续属性的数据,簇的原型通常是质心,即簇中所有点的平均值。这种簇倾向于呈球状。
(3)基于图的:如果数据用图表示,其中节点是对象,而边代表对象之间的联系,则簇可以定义为连通分支,即互相连通但不与组外对象连通的对象组。基于图的簇一个重要例子就是基于临近的簇,其中两个对象是相连的,仅当他们的距离在指定的范围之内。也就是说,每个对象到该簇某个对象的距离比不同簇中的任意点的距离更近。
(4)基于密度的:簇是对象的稠密区域,被低密度的区域环绕。当簇不规则或互相盘绕,并且有噪声和离群点时,常常使用基于密度的簇定义。
基本K均值:选择K个初始质心,其中K是用户指定的参数,即所期望的簇的个数。每次循环中,每个点被指派到最近的质心,指派到同一个质心的点集构成一个簇。然后,根据指派到簇的点,更新每个簇的质心。重复指派和更新操作,直到质心不发生明显的变化。
根据该算法,实现如下代码:
根据该算法,实现如下代码。开始时计算每个点对的距离,并按距离降序依次合并。另外为了防止过度合并,定义的退出条件是90%的簇被合并,即当前簇数是初始簇数的10%:
(2)边界点:该点不是核心点,但是其邻域内包含至少一个核心点。
(3)噪音点:不是核心点,也不是边界点。
有了以上对数据点的划分,聚合可以这样进行:各个核心点与其邻域内的所有核心点放在同一个簇中,把边界点跟其邻域内的某个核心点放在同一个簇中。
根据该算法,实现如下代码:
- 初识聚类算法:K均值、凝聚层次聚类和DBSCAN
- 初识聚类算法:K均值、凝聚层次聚类和DBSCAN
- 初识聚类算法:K均值、凝聚层…
- 聚类算法概述(k-Means++/FCM/凝聚层次聚类/DBSCAN)
- 聚类算法:凝聚层次聚类
- 层次凝聚聚类算法(HAC)
- 基本凝聚层次聚类算法
- K-均值聚类算法
- K均值聚类算法
- K-均值聚类算法
- 聚类算法:K均值
- K-均值聚类算法
- K-均值聚类算法
- k均值聚类算法
- k均值聚类算法
- K-均值聚类算法
- k均值聚类算法
- K-均值聚类算法
- tomcat 内存溢出解决方案
- hive-0
- Maven: Failed to retrieve plugin descriptor error
- CPU标志寄存器
- 几个visual studio 的快捷键
- 初识聚类算法:K均值、凝聚层次聚类和DBSCAN
- 无缝滑动展示图片
- 博弈论
- uva11400 lighting system design
- PDF复制乱码 -- 原因及解决方案
- "阻塞--中断"驱动模型在i2c在子系统、uart驱动、spi子系统中的实现
- SICP练习题1.11
- 面试:哈希:最长连续子串
- Android导入数据库