数据挖掘导论 之 聚类分析
来源:互联网 发布:网络服装品牌创建 编辑:程序博客网 时间:2024/05/19 06:36
这篇文章对《数据挖掘导论》中聚类分析这部分做一个总结。
聚类
- 含义:根据在数据中发现的描述对象及其关系的信息,将数据对象分组
- 目标:组内的对象相互之间是相似的,而不同组中的对象是不同的。组内的相似性越大,组间差别越大,聚类就越好。
- 类型:
- 划分聚类(partitional clustering):将数据对象划分成不重叠的子集,使得每个数据对象恰在一个子集中。
- 层次聚类(hierarchical clustering):允许簇有子簇。
- 互斥的(exclusive):每个对象都被指派到单个簇。
- 重叠的(overlapping):一个对象同时属于多个组。
- 模糊的(fuzzy):每个对象以一个0和1之间的隶属权值属于每个簇。
- 完全聚类(complete clustering):每个对象指派到一个簇。
- 部分聚类(partial clustering):数据集中某些对象不属于明确定义的组。
- 簇类型:
- 明显分离的:每个点到同簇中任一点的距离比到不同簇中所有点的距离更近。
- 基于原型的:每个点到定义该簇的原型的距离比到其他簇的原型的距离更近。
- 连续属性的数据:质心(所有点的平均值)
- 数据具有分类属性:中心点
- 基于密度的:簇是对象的稠密区域,被低密度的区域环绕。
- 聚类方法
- 基于划分的:K-Means, K-Medoids, Clarans算法
- 基于层次的:Birch,Cure,Chameleon算法
- 基于密度的:DBScan,Optics,Denclue算法
- 基于网格的: Sting,Clique,Wave-cluster算法
- 基于模型的
K-Means
- 基于原型的聚类技术
- 分类:K均值(用质心定义原型)K中心点(用中心点定义原型)
- 过程:
- 选择K个初始质心
- 每个点指派到最近的质心,指派到一个质心的点集为一个簇
- 根据指派到簇的点,更新每个簇的质心(最小化给定质心集的SSE)
- 重复指派和更新步骤,直到簇不发生变化
- 一些问题
- 选择初始质心:多次运行,每次使用一组不同的随机初始质心,然后选取具有最小SSE的簇集。
- 处理空簇:选择替补质心
- 选择一个距离当前质心最远的点(消除对总平方和误差影响最大的点)
- 从具有最大SSE的簇中选择一个替补质心(分裂簇并降低聚类的总SSE)
- 离群点:发现离群点并删除它们
- 用后处理降低SSE:交替使用簇分裂和簇合并
- 增加簇个数来降低总SSE
- 分裂一个簇:分裂最大SSE的簇
- 引进一个新的质心:选择离所有簇最远的点作为新的质心||从所有点或具有最高SSE的点中随机选择
- 减少簇个数
- 拆散一个簇:删除使总SSE增加最少的簇的质心,并将簇的点重新指派到其他簇。
- 合并两个簇:选择质心最接近的两个簇。
- 增加簇个数来降低总SSE
- 增量更新质心:在点到簇的每次指派后,增量的更新质心,而不是到所有点都指派到簇中之后在进行更新
- 每步都要0次或2次簇质心更新
- 0次:一个点留在它的当前簇
- 2次:一个点转移到新的簇
- 每步都要0次或2次簇质心更新
- 二分K均值:为了得到K个簇,将所有点的集合分裂成两个簇,从这些簇中选取一个继续分裂,如此下去,直到产生K个簇。
- 优点:有效
- 缺点:
- 不能处理非球形、不同尺寸、不同密度的簇
- 仅限于具有中心概念的数据
层次聚类
- 凝聚 V.S. 分裂
- 凝聚:从点作为个体簇开始,每一步合并两个最接近的簇
- 分裂:从包含所有点的某个簇开始,每一步分裂一个簇,直到仅剩下单点簇。
- 表现方式:树状图(dendrogram)、嵌套簇图(nested cluster diagram)
- 簇的邻近性:
- 基于图的思想:
- MIN:两个不同簇的任一点的最短距离
- MAX:两个不同簇的任一点的最长距离
- 组平均:不同簇的所有点对邻近度的平均值
- 基于原型的思想:
- 质心:簇质心之间的相似性
- Ward方法:合并两个簇导致的SSE增加量
- 基于图的思想:
主要问题
- 缺乏全局目标函数 – 没有局部极小或很难选择初始点的问题
- 处理不同大小簇的能力
- 加权(weighted):平等的对待所有簇
- 非加权(unweighted):考虑每个簇的点数
- 合并决策是最终的:一旦做出合并两个簇的决策,以后就不能撤销。从而阻碍了局部最优标准变为全局最优标准。
DBSCAN
- 基于密度的聚类
- 基于中心的方法:数据集中特定点的密度通过对该点Eps半径之内的点计数来估计。
- 核心点(core point):该点的给定邻域内的点的个数超过给定的阈值MinPts
- 边界点(border point):落在某个核心点的邻域
- 噪声点(noise point):非核心点非边界点
- 步骤:
- 任意两个足够靠近(Eps内)的核心点放到一个簇中。
- 任何与核心点足够靠近的边界点也放到与核心点相同的簇中。
- 噪声点被丢弃。
- 优点:抗噪声,能够处理任意形状和大小的簇
- 缺点:不能处理密度变化很大的簇。不能处理高维数据。
簇评估
- 指标:
- 非监督的(内部指标):仅使用出现在数据集中的信息
- 簇的凝聚性(cluster cohesion):确定簇中对象如何密切相关
- 簇的分离性(cluster separation):确定某个簇不同于其他簇的地方
- 监督的(外部指标):度量聚类算法发现的聚类结构与某种外部结构的匹配程度
- 相对的:比较不同的聚类或簇
- 轮廓系数(silhouette coefficient):结合了凝聚度和分离度
- 邻近度矩阵:创建一个矩阵,每个数据点一行一列,矩阵的一个项为1,如果它所关联的一对点属于一个簇。其他项为0。
- 非监督的(内部指标):仅使用出现在数据集中的信息
- 簇有效性的度量
- 熵:每个簇由单个类的对象组成的程度。
- 纯度:簇包含单个类的对象的度量。
- 精度:簇中一个特定类的对象所占的比例。
- 召回率:簇包含一个特定类的所有对象的程度。
- F度量:精度和召回率的组合。度量在多大程度上,簇只包含一个特定类的对象和包含该类的所有对象。
0 0
- 数据挖掘导论 之 聚类分析
- 数据挖掘之聚类分析
- 数据挖掘:聚类分析
- 数据挖掘--聚类分析
- 数据挖掘(聚类分析)
- 数据挖掘中的聚类分析
- 数据挖掘笔记:聚类分析
- 数据挖掘算法--聚类分析
- 数据挖掘-聚类分析
- 数据挖掘-聚类分析
- 数据挖掘导论 之 分类
- 使用Orange进行数据挖掘之聚类分析(2)------K-means
- 数据挖掘之描述建模(聚类分析和K-means)
- 数据挖掘算法之聚类分析(二)canopy算法
- 基于微软案例数据挖掘之Microsoft 聚类分析算法
- 数据挖掘导论笔记之探索数据
- 数据挖掘导论总结之分类技术
- 数据挖掘导论--数据
- 上门洗车APP --- Android客户端开发 之 项目结构介绍
- 最新版CleanMyMac怎么样
- 比较一个字符串日期和一个日期格式的日期的大小
- java 内存划分与作用
- setsockopt
- 数据挖掘导论 之 聚类分析
- git删除错误提交的commit
- 调mysql函数从1开始生成自增序列值
- 简单的背包程序
- c知识杂集(未完待续)
- Js 怎么遍历json对象所有key及根据动态key获取值
- make里的wildcard和patsubst
- 拖动实现图片移动效果
- Android应用安全防御