【数据挖掘】十大算法之K-Means K均值聚类算法

简介: K-Means聚类算法的基本介绍,包括算法步骤、损失函数、优缺点分析以及如何优化和改进算法的方法,还提到了几种改进的K-Means算法,如K-Means++和ISODATA算法。

1.png

1 Kmeans步骤

(1)数据预处理,如归一化、离群点处理等
(2)随机选取K个簇中心,记为$$u_1^0, u_2^0, \ldots, u_k^0$$
(3)定义代价函数,表示在一个簇内,各个样本距离所属簇中心点的误差平方和

$$J(c, u) = \sum_{i=1}^{k}\| x_i - u_{c_i} \|^{2} $$
其中 xi表示第 i 个样本点, ci 是xi所属簇, uci代表簇对应的中心点,M是样本数。刻画了簇内样本围绕簇均值向量的紧密程度。
(4)令t=0,1,2,... 为迭代步数,重复下面过程直到J收敛。
2.png

2 kmeans损失函数

损失函数是各个样本距离所属簇中心点的误差平方和
$$J(c, u) = \sum_{i=1}^{k}\| x_i - u_{c_i} \|^{2} $$
其中 xi表示第 i 个样本点, ci 是xi所属簇, uci代表簇对应的中心点,M是样本数。

3 优缺点

(1)缺点

  • 受初始簇心值和离群点的影响,每次的运行结果不稳定
  • 结果通常不是全局最优
  • 无法很好地解决数据簇样本数量分布差别较大的情况(如一个簇样本10,一个簇样本是100倍)
  • 不太适用于离散分类,样本点只能被划分到单一的类中

(2)优点

  • 对于大数据,计算复杂度是O(NKt),接近与线性,其中N是数据的样本数,K是簇 心数,t是迭代的轮次数。
  • 局部最优也能满足大部分的聚类需求

4 如何调优和改进

(1)数据归一化和离群点处理

  • 均值和方差打的维度对数据的聚类结果产生决定性的影响,未做归一化处理和统一单位的数据是无法直接参与运算和比较的。
  • 离群点和少量的噪声数据会对均值产生交大的影响,导致中心偏移

(2)合理的选择K值
评价指标函数有误差平方和SSE和轮廓系数,通过可视化,采用手肘法去判断最佳的K值
(3)采用核函数
称为核K均值算法,是核聚类方法的一种,主要思想是通过一个非线性映射,将输入空间中的数据点映射到高位的特征空间中,并在新的特征空间中聚类。非线性映射增加了数据点线性可分的概率,从而在经典的聚类算法失效的情况下,通过引入核函数可以达到更为准确的聚类结果。

5 改进的算法

(1)Kmeans++
随机选择第一个簇心,则在选取之后簇心的时候,距离当前n个簇心越远的点有更高被选为第n+1的簇心。
(2)ISODATA算法
当K值不确定的时候,可以使用ISODATA算法。全称是迭代自组织数据分析法。
算法思想是当属于某个类别的样本过少时,把该类别去除;当属于某个类别的样本数过多、分散成都较大时,把该类别分为两个子类别。在K均值上增加了两个操作,一个是分裂操作,对应增加聚类中心数,二是合并操作,对应减少聚类重心数。

缺点是:需要指定的参数比较多。有四个,分别是

  • 预期的聚类中心数目K
  • 每类所要求的最小样本数目 N m i n N_{min} Nmin​,用于类别删除。
  • 最大方差Sigma。用于控制某个类别中样本的分散程度,用于类别分裂。
  • 两个聚类重心之间所允许的最小距离 D m i n D_{min} Dmin​。
目录
相关文章
|
6月前
|
数据采集 机器学习/深度学习 算法
|
3月前
|
机器学习/深度学习 算法 数据挖掘
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构
K-means聚类算法是机器学习中常用的一种聚类方法,通过将数据集划分为K个簇来简化数据结构。本文介绍了K-means算法的基本原理,包括初始化、数据点分配与簇中心更新等步骤,以及如何在Python中实现该算法,最后讨论了其优缺点及应用场景。
172 4
|
24天前
|
移动开发 算法 计算机视觉
基于分块贝叶斯非局部均值优化(OBNLM)的图像去噪算法matlab仿真
本项目基于分块贝叶斯非局部均值优化(OBNLM)算法实现图像去噪,使用MATLAB2022A进行仿真。通过调整块大小和窗口大小等参数,研究其对去噪效果的影响。OBNLM结合了经典NLM算法与贝叶斯统计理论,利用块匹配和概率模型优化相似块的加权融合,提高去噪效率和保真度。实验展示了不同参数设置下的去噪结果,验证了算法的有效性。
|
6月前
|
数据采集 机器学习/深度学习 算法
【优秀设计案例】基于K-Means聚类算法的球员数据聚类分析设计与实现
本文通过K-Means聚类算法对NBA球员数据进行聚类分析,旨在揭示球员间的相似性和差异性,为球队管理、战术决策和球员评估提供数据支持,并通过特征工程和结果可视化深入理解球员表现和潜力。
203 1
【优秀设计案例】基于K-Means聚类算法的球员数据聚类分析设计与实现
|
3月前
|
算法 数据挖掘 数据安全/隐私保护
基于FCM模糊聚类算法的图像分割matlab仿真
本项目展示了基于模糊C均值(FCM)算法的图像分割技术。算法运行效果良好,无水印。使用MATLAB 2022a开发,提供完整代码及中文注释,附带操作步骤视频。FCM算法通过隶属度矩阵和聚类中心矩阵实现图像分割,适用于灰度和彩色图像,广泛应用于医学影像、遥感图像等领域。
|
4月前
|
算法 数据挖掘
基于粒子群优化算法的图象聚类识别matlab仿真
该程序基于粒子群优化(PSO)算法实现图像聚类识别,能识别0~9的数字图片。在MATLAB2017B环境下运行,通过特征提取、PSO优化找到最佳聚类中心,提高识别准确性。PSO模拟鸟群捕食行为,通过粒子间的协作优化搜索过程。程序包括图片读取、特征提取、聚类分析及结果展示等步骤,实现了高效的图像识别。
|
5月前
|
机器学习/深度学习 数据采集 算法
数据挖掘和机器学习算法
数据挖掘和机器学习算法
|
6月前
|
人工智能 算法 数据可视化
DBSCAN密度聚类算法(理论+图解+python代码)
DBSCAN密度聚类算法(理论+图解+python代码)
457 0
|
6月前
|
算法 前端开发 计算机视觉
基于均值坐标(Mean-Value Coordinates)的图像融合算法的优化实现
基于均值坐标(Mean-Value Coordinates)的图像融合算法的优化实现
63 0
|
6月前
|
自然语言处理 并行计算 算法
基于均值坐标(Mean-Value Coordinates)的图像融合算法的具体实现
基于均值坐标(Mean-Value Coordinates)的图像融合算法的具体实现
60 0