Kmeans聚类算法

Kmeans聚类算法

动态聚类算法

        任务:是将数据集划分成一定数量的子集,例如将一个数据集划分成3、4个子集等。因此要划分成多少个子集往往要预先确定,或大致确定,当然这个子集数目在理想情况能体现数据集比较合理的划分。

        要解决的问题是:  1、怎样才能知道该数据集应该划分的子集数目?

                                    2、如果划分数目已定,则又如何找到最佳划分?

        因为数据集可以有许多种不同的划分方法,需要对不同的划分作出评价,并找到优化的划分结果。由于优化过程是从不甚合理的划分到“最佳”划分,是一个动态的迭代过程,故这种方法称为动态聚类方法。

 

动态聚类方法的要点

        1.选定某种距离度量作为样本间的相似性度量;

        2.确定样本合理的初始分类,包括代表点的选择,初始分类方法的选择等;

        3.确定某种评价聚类结果质量的准则函数,以调整初始分类直至达到该准则函数的极值。

        以上三点是动态聚类方法的三个要素,其中初始划分只是为了使划分能从某个初始点开始,而相似度量计算方法对解决实际问题很重要,先从最简单的度量——数据之间的欧氏距离开始,然后再涉及其它相似性度量方法。第三个要素,即使用准则函数作为优化的评价是动态聚类方法的核心。

 

K- Means聚类算法

        K- Means是迭代动态聚类算法中的一种,其中K表示类别数,Means表示均值。

        顾名思义K-Means是一种通过均值对数据点进行聚类的算法。K-Means算法通过预先设定的K值及每个类别的初始质心对相似的数据点进行划分。并通过划分后的均值迭代优化获得最优的聚类结果。 


K- Means算法的关键问题

K值的选择

        K值是聚类结果中类别的数量。简单的说就是我们希望将数据划分的类别数。K值决定了初始质心的数量。K值为几,就要有几个质心。

        选择最优K值没有固定的公式或方法,需要人工来指定,建议根据实际的业务需求,或通过层次聚类(Hierarchical Clustering)的方法获得数据的类别数量作为选择K值的参考。这里需要注意的是选择较大的K值可以降低数据的误差,但会增加过拟合的风险。

初始质心(代表点)的选择方法

        1.凭经验选择代表点。根据问题的性质,用经验的办法确定类别数,从数据中找出从直观上看来是较合适的代表点。

        2.将全部数据随机地分为C类,计算各类重心,将这些重心作为每类的代表点。

        3.“密度”法选择代表点。这里的“密度”是具有统计性质的样本密度。一种求法是对每个样本确定大小相等的邻域(如同样半径的超球体),统计落在其邻域的样本数,称为该点“密度”。在得到样本“密度”后,选“密度”为最大的样本点作为第一个代表点,然后人为规定距该代表点距离外的区域内找次高“密度”的样本点作为第二个代表点,依次选择其它代表点,使用这种方法的目的是避免代表点过分集中在一起。

        4.从(c-1)聚类划分问题的解中产生C聚类划分问题的代表点。其具体做法是先从一类聚类的解找两聚类划分的代表点,再依次增加一个聚类代表点。对样本集首先看作一个聚类,计算其总均值,然后找与该均值相距最远的点,由该点及原均值点构成两聚类的代表点。依同样方法,对已有(c-1)个聚类代表点(由(c-1)个类均值点组成)找一样本点,使该样本点距所有这些均值点的最小距离为最大,这样就得到了第c个代表点。

确定初始划分的方法

  • 19
    点赞
  • 144
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值