聚类基础实验——KMeans(++)聚类

算法原理  

        K-Means聚类的核心思想是将含有n个对象或元组的数据集X={x1, x2, …, xn}划分为K个簇,每个簇至少包含一个对象且每个对象属于且仅属于一个簇;划分时,同一个簇中的对象的距离尽可能地近,不同簇之间的对象的距离尽可能地大。K-Means划分的各个簇最终使均方误差最小,即

min\Sigma_{i=0}^{K}\Sigma_{x_{j}\in C_i,}^{R}(|x_{j}-u_i|^{2})

其中,x_j是第j个对象,j=1,2,…,n,u_i为第i个簇的中心;

        簇的表示有两种方法:①K平均:簇的均值代表整个簇;②K中心点:簇的中心区域的某个值代表整个簇;    

图片

          

优缺点  

优点:

        ·原理简单,易于实现且可解释性强;

        ·收敛速度快,在大多数情况下能够在较短的时间内收敛到较好的解。

缺点:    

        ·需要手动指定簇的个数K,且该值的选择对最终聚类效果的影响较大;

        ·对于非凸的簇结构,K-Means算法的表现不佳,容易陷入局部最优解;

        ·初始的簇中心点的随机选择可能导致不同的聚类结果;

        ·不适合处理密度分布不均的数据集。

应用场景  

K-Means聚类算法在实际应用中有着广泛的用途,包括但不限于:

       ·客户分群:在市场营销领域,K-Means算法可以帮助企业根据客户的购买记录、行为偏好等信息将客户分成不同的群体,以便制定更加精准的营销策略。

        ·图像分割:在计算机视觉领域,K-Means算法可以用于图像分割任务。通过将图像中的像素点按照颜色、亮度等特征进行聚类,可以实现图像的自动分割和识别。

        ·文本聚类:在自然语言处理领域,K-Means算法可以用于文本聚类任务。通过将文本数据表示成向量形式,并利用K-Means算法进行聚类,可以实现文本的自动分类和主题提取。

K-Means++  

        K-Means是对K-Meand的改进,主要区别在于对初始聚类中心的选取方法不同。假设指定的簇的个数为K,选取初始聚类中心点:①随机从给定的数据集D中选取一个对象作为第一个聚类中心;②在选取第i个聚类中心点时(i=2, 3, …, K),距离当前i - 1个簇中心点越远的点会有更高的概率被选中。    

        改进非常直观简单但有效:初始聚类中心互相离得越远越好。

          

拓展——聚类评  

        在数据集上进行聚类的可行性评估和被聚类方法产生的结果的质量的评估,主要任务:

        ① 聚类趋势评估:评估该数据集是否存在非随机结构,聚类分析仅当数据中存在非随机结构才有意义;

        ②确定数据集中的划分簇数;

        ③测定聚类质量。

聚类趋势评估  

        非随机结构在这里指的是数据集中存在的、不是由随机噪声或纯随机性造成的内在模式或规律性。这些模式或规律性可能表现为样本之间的相似性或差异性,它们使得数据集可以被划分为有意义的群组。

        评估数据的聚类趋势,通常使用统计测试、可视化方法(如散点图、热力图等)或专门的聚类趋势指数来评估数据的内在结构。这些评估结果可以帮助研究人员决定是否进行聚类分析,以及选择合适的聚类算法和参数。

        若要用专门的聚类趋势指数进行聚类趋势评估,可以评估数据集被均匀分布产生的概率,如使用霍普金斯统计量(Hopkins Statistic),可以检验空间分布的变量的空间随机性。如果数据集是随机分布的,则

在Python中使用K-Means聚类算法时,选择最佳的聚类数目是很重要的。有几种常用的方法可以帮助确定最佳聚类数目。 一种常用的方法是通过手肘法来确定最佳聚类数目。手肘法通过计算聚类内部每个点与聚类中心的距离之和(SSE)来评估聚类的性能。随着聚类数目的增加,SSE会逐渐减小,但当聚类数目增加到一定程度后,SSE的下降速度会变得较慢。因此,可以选择SSE开始下降变缓的拐点作为最佳聚类数目。当聚类数目增加时,拐点之后的SSE的变化较小,这表明增加聚类数目对聚合程度的影响较小。 另一种常用的方法是使用轮廓系数来选择最佳聚类数目。轮廓系数是一种衡量聚类结果的质量的指标,取值范围在[-1, 1]之间。对于每个数据点,轮廓系数计算了它与所属聚类中心的相似度,以及它与其他聚类中心的不相似度。最佳聚类数目应该使得轮廓系数最大。较大的轮廓系数表示数据点与其所属聚类更相似,而与其他聚类不相似。 综上所述,选择最佳聚类数目可以使用手肘法或轮廓系数方法。手肘法通过拐点确定最佳聚类数目,而轮廓系数方法通过最大化轮廓系数来选择最佳聚类数目。具体选择哪种方法可以根据具体情况和数据集特点来决定。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [聚类算法:KmeansKmeans++算法精讲](https://blog.youkuaiyun.com/weixin_43334693/article/details/130264220)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [python聚类算法kmeans/kmeans++最佳聚类数目选择](https://blog.youkuaiyun.com/Jiiaaaoooo/article/details/89424475)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [[python] Kmeans文本聚类算法+PAC降维+Matplotlib显示聚类图像源码](https://download.youkuaiyun.com/download/eastmount/9410810)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Helloyouth2024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值