美文网首页
K-means聚类算法(1)

K-means聚类算法(1)

作者: 大龙10 | 来源:发表于2023-08-19 05:25 被阅读0次
百家号(大数据文摘)
https://baijiahao.baidu.com/s?id=1747494468301648417&wfr=spider&for=pc

一、监督学习和无监督学习

  • 机器学习算法可分为监督学习(Supervised learning)和无监督学习(Unsupervised learning)。

1、监督学习

  • 监督学习常用于分类和预测。
  • 是让计算机去学习已经创建好的分类模型,使分类(预测)结果更好的接近所给目标值,从而对未来数据进行更好的分类和预测。
  • 因此,数据集中的所有变量被分为特征和目标,对应模型的输入和输出;
    数据集被分为训练集和测试集,分别用于训练模型和模型测试与评估。
  • 常见的监督学习算法有Regression(回归)、KNN和SVM(分类)。

2、无监督学习

  • 无监督学习常用于聚类。
    输入数据没有标记,也没有确定的结果,而是通过样本间的相似性对数据集进行聚类,使类内差距最小化,类间差距最大化。
  • 无监督学习的目标不是告诉计算机怎么做,而是让它自己去学习怎样做事情,去分析数据集本身。
  • 常用的无监督学习算法有K-means、 PCA(Principle Component Analysis)。

二、聚类算法

1、聚类

  • 聚类算法又叫做“无监督分类”,其目的是将数据划分成有意义或有用的组(或簇)。
  • 这种划分可以基于业务需求或建模需求来完成,也可以单纯地帮助我们探索数据的自然结构和分布。
    比如在商业中,如果手头有大量的当前和潜在客户的信息,可以使用聚类将客户划分为若干组,以便进一步分析和开展营销活动。
    再比如,聚类可以用于降维和矢量量化,可以将高维特征压缩到一列当中,常常用于图像、声音和视频等非结构化数据,可以大幅度压缩数据量。

2、聚类算法与分类算法的比较


三、K-Means聚类算法

1、工作原理

  • 作为聚类算法的典型代表,K-Means可以说是最简单的聚类算法。
  • K-means聚类算法是一种比较简单并且实用的聚类算法之一,该算法就是将空 间中的数据点{x1,x2,…,xN}聚成K个簇,寻找每个簇中的聚类中心μk(k=1,2,…,K), 将空间中的数据分配到距离最近的聚类中心,使得每个点与其相应的聚类中心距 离的平方和最小。
  • K-means聚类算法是以距离作为相似性的评价指标,如果两个 样本点距离越近,则其相似度越大。
  • 按照距离将样本聚成不同的簇,得到紧凑且 独立的簇作为聚类目标。

2、算法

  • 在K-Means算法中,簇的个数K是一个超参数,需要人为输入来确定。
    K-Means的核心任务就是根据设定好的K,找出K个最优的质心,并将离这些质心最近的数据分别分配到这些质心代表的簇中去。

    • a.首先随机选取样本中的K个点作为聚类中心;
    • b.分别算出样本中其他样本距离这K个聚类中心的距离,并把这些样本分别作为自己最近的那个聚类中心的类别;
    • c.对上述分类完的样本再进行每个类别求平均值,求解出新的聚类质心;
    • d.与前一次计算得到的K个聚类质心比较,如果聚类质心发生变化,转过程b,否则转过程e;
    • e.当质心不发生变化时(当我们找到一个质心,在每次迭代中被分配到这个质心上的样本都是一致的,即每次新生成的簇都是一致的,所有的样本点都不会再从一个簇转移到另一个簇,质心就不会变化了),停止并输出聚类结果。


3、例题

    1. 对于以下数据点,请采用k-means方法进行聚类(手工计算)。假设聚类簇数k=3,初始聚类簇中心分别为数据点2、数据点3、数据点5。


  • 解:
    正在进行第1次迭代初始质心为B、C、E
    AB = 2.502785
    AC = 5.830635
    AE = 7.054443
    DB = 3.819911
    DC = 1.071534
    DE = 7.997158
    因此,第一簇:{A,B};第二簇:{C,D};第三簇:{E}
    即[array([-5.379713, -3.362104]), array([-3.487105, -1.724432])][array([ 0.450614, -3.302219]), array([-0.39237, -3.963704])][array([-3.45368, 3.424321])]
    所以第一簇的质心为F:[-4.433409 -2.543268]
    第二簇的质心为G:[ 0.029122 -3.6329615]
    第三簇的质心为H:[-3.45368 3.424321]
    ############
    正在进行第2次迭代
    AF = 1.251393
    AG = 5.415613
    AH = 7.054443
    BF = 1.251393
    BG = 4.000792
    BH = 5.148861
    CF = 4.942640
    CG = 0.535767
    CH = 7.777522
    DF = 4.283414
    DG = 0.535767
    DH = 7.997158
    EF = 6.047478
    EG = 7.869889
    EH = 0.000000
    因此,第一簇:{A,B};
    第二簇:{C,D};
    第三簇:{E}
    即[array([-5.379713, -3.362104]), array([-3.487105, -1.724432])][array([ 0.450614, -3.302219]), array([-0.39237, -3.963704])][array([-3.45368, 3.424321])]
    所以第一簇的质心为:[-4.433409 -2.543268]
    第二簇的质心为:[ 0.029122 -3.6329615]
    第三簇的质心为:[-3.45368 3.424321]
    ###########
    由于三个簇的成员保持不变,聚类结束

相关文章

网友评论

      本文标题:K-means聚类算法(1)

      本文链接:https://www.haomeiwen.com/subject/nxtdmdtx.html