K-means聚类算法

NLP之K-means聚类算法

基本概念:

  1. 聚类是一种无监督的学习,它将相似的对象归到一个簇中。
  2. 相似这一概念取决于所选择的相似度计算方法。
  3. 聚类与分类算法的最大区别在于,分类的目标类别已知,而聚类的目标类别是未知的。

算法介绍:

    1.是一种基本的已知聚类类别数的划分算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。

    2.该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。

    3.它是使用欧氏距离度量的(简单理解就是两点间直线距离,欧氏距离只是将这个距离定义更加规范化,扩展到N维而已)。

    4.它可以处理大数据集,且高效。它的输入是数据集和类别数。聚类结果是划分为k类的k个数据集。

    5根据聚类结果的表达方式又可以分为硬 k-means(HCM)算法、模糊k-means算法(FCM)和概率k-means算法(PCM)。

基本思想:

    基于给定的聚类目标函数,算法采用迭代更新的方法,每一次迭代过程都是向目标函数减小的方向进行,最终聚类结果使得目标函数取得极小值,达到较好的分类效果。

基本步骤:

    1.从数据集中随机取k个对象,作为k个簇的初始聚类中心。

    2.计算剩下的对象到k个簇中心的相似度,将这些对象分别划分到相似度最高的簇。

    3.根据聚类结果,更新k个簇的中心,计算方法是取簇中所有对象各自维度的算术平均值。

    4.将数据集中全部元素按照新的中心重新聚类。

    5.达到算法停止条件,转至步骤6;否则转至步骤3。

    6.输出聚类结果。

    补充:算法停止条件

        1.设定迭代次数;

        2.聚类中心不再变化;

        3.前后两次聚类结果的目标函数变化很小。

算法优缺点:

  1. 优点:易于实现
  2. 缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢。

注意:

        使用数据类型:数值型数据

k-means开发流程:

    1.收集数据:使用任意方法。

    2.准备数据:需要数值型数据类计算距离,也可以将标准型数据映射为二值型数据再用于距离计算。

    3.分析数据:使用任意方法。

    4.训练算法:此步骤不适用于此算法。

    5.测试算法:应用聚类算法、观察结果,可以使用量化的误差指标如误差平方和来评估算法的结果。

    6.使用算法:可以用于所希望的任何应用。通常情况下,簇质心可以代表整个簇的数据来做决策。

    注意:

        误差平方和准则f(目标函数)值:

伪代码表示:

    1.创建k个点作为起始质心(通常是随机选择)

    2.当任意一个点的簇分配结果发生改变时

        对数据集中的每个数据点

            对每个质心

                计算质心与数据点直接的距离

        对每一个簇,计算簇中所有点的均值并将均值作为质心

流程图表示:

学习以及代码参考链接

1.https://blog.csdn.net/qq_39742013/article/details/81675050?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160647051719725271019829%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=160647051719725271019829&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-1-81675050.pc_first_rank_v2_rank_v28&utm_term=k-means%E8%81%9A%E7%B1%BB%E7%AE%97%E6%B3%95&spm=1018.2118.3001.4449

2.https://www.bilibili.com/video/BV1cx411x7xu

K-means 的应用

1.https://www.jianshu.com/p/06894372a1ad

2.https://www.cnblogs.com/leoo2sk/archive/2010/09/20/k-means.html

3.https://www.cnblogs.com/hqczsh/p/11772243.html

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值