Python :k-means聚类算法对数据进行分类

K均值聚类算法,基于目标最小化策略算法可以首先从给定的数据集中,随机选择k个数据对象作为k个簇的初始聚类中心,且每个聚类中心点对应于一个聚类;对剩余的数据对象,计算它们与各个簇中心点的距离,将它们指派到离其最近的簇中;最后,重新计算各个簇中的中心点。按照上述过程进行重复计算,直到聚类中心点不再发生变化或者目标准则函数收敛到一个最佳的位置处。该算法所采用的目标函数一般为如式(1)和式(2)所示:

 

其中,为第j个簇中数据对象的中心心点,为簇所包含的数据对象。由此可得,目标函数J是关于簇中的数据对象与簇中心点之间的函数,该算法就是试图找到令目标函数J取得最小值时的k值,按照这个方法对数据集进行处理,所获得的聚类结果就可以满足簇内紧凑而同时也达到簇间远离的性质。由此可以得到聚类算法的具体步骤如下:

输入:聚类数k,以及所要处理的数据集;
输出:k个簇的划分情况。
Stepl从数据集中随机选取k个数据对象作为k个簇的初始聚类中心点,且每个数据对象对应于一个簇;
Step2将剩余的数据对象根据其与各个簇中心点的距离,分别指派到离其距离最近的簇中;
Step3更新每个簇的聚类中心,即重新计算各个簇内所有对象的平均值;
Step4重新分配各个数据对象;
Step5直到准则函数收敛或者聚类中心不再变化,否则转到step3。  

在给定聚类个数范围内,如何利用一个标准去评价同一个算法在不同聚类参数条件下或不同算法所生成的聚类划分的情况,进而选择其中最好的聚类划分结果,这个问题就称为聚类结果评价问题。通常,对数据集的聚类划分情况的有效性评价主要有4类评价标准,分别是外部聚类有效性、内部聚类有效性、相对聚类有效性以及模糊评价有效性。目前,比较常用的评价聚类质量的指标主要有外部和内部聚类有效性。外部聚类有效性是指利用聚类分析算法对数据集进行处理,所得到的聚类划分结果与数据集中的“真实”聚类划分结果进行比较,来对其有效性进行评估。内部聚类有效性是主要考虑数据集自身的几何分布特征来对聚类结果进行评价。

当不知道数据集的真实聚类数的情况下,一般都是使用内部聚类有效性进行评价的。这种方法往往需要使用一些比如统计指标进行衡量聚类质量,聚类有效性指标是其中一类比较常见的指标。下面就介绍一下Bezdek[1]等人提出的和指标。


这两个指标都是基于数据集的模糊划分的有效性指标,它们的基本思想是:一个能够被较好地进行分类的数据集其结构应该是比较分明的。因此,模糊划分的模糊性越小,聚类的结果就越可靠,具体到这两个指标就是,值越大、同时值达到越小时,就认为所得到的聚类结果是比较好的。所以,在利用该指标进行判断时,一般应用模糊聚类算法上时,数据集的聚类划分效果会更显著。


患者编号653个数据,对应的指标1到指标9,分成2类,并与结果做对比

cancer.csv数据表如下(部分):

<
患者编号 指标1 指标2 指标3
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值