机器学习-聚类算法-k-means

聚类

聚类算法:(无监督的分类算法,核心是要确定类别(簇或组的个数)相似性度量方法

聚类分析的作用:

    作为一个独立的工具来获取数据集中数据的分布情况

  • 首先对数据集进行聚类从而获取所有簇;

  • 然后每个簇中样本数目获取数据大体分布情况。

    作为其他数据挖掘算法的预处理步骤(可以将数据集细化进行进一步处理)

  • 对数据集进行聚类获取粗分类

  • 然后分别对每个簇进行特征提取和细分类

    yolo中的几种anchor的尺寸就是通过k-means聚类获取的

聚类分析方法:划分法(以距离作为数据集的相似性度量划分簇:k-means,k-medoids)、层次法(对数据集进行层次分解形成一个树形的聚类结果:自顶向下法(分裂算法))、密度法(DBSCAN、谱聚类)

 

相似性计算方法:

    通常使用样本之间的距离,而样本之间的距离是在样的描述属性也就是特征是进行计算的,属性的描述在不同领域会有不同,由连续、二值、多值、混合等。

    1 连续性属性的相似性计算方法:

  • 欧式距离

  • 曼哈顿距离

  • 闵可夫斯基距离

    2 二值型离散型属性的相似性计算方法(通常只有两个属性,一般取值0和1):

  • 属性是对称的情况(取1和取0 的权重是一样的,比如性别):

               表中abcd是样本的个数,得到可能性矩阵,然后使用简单匹配系数(Simple Matching Coefficient)进行样本间距离的计算

                SMC=(b+c)/(a+b+c+d)

 

Xi                Xj

1

0

sum

1

a

b

a+b

0

c

c+d

sum

a+c

b+d

p

  • 属性不对称:上表使用Jaccard系数计算

           JC = (b+c)/(a+b+c)

 3 多值离散型属性的相似性计算:

  • 简单匹配方法 

                d(Xi, Xj)=(d-u)/d   d为数据集中属性的个数,u为两个样本之间取值相同的属性的个数

  • 先将多值离散型属性转换成多个二值离散型属性,然后使用Jaccard系数计算

        将每一个属性的取值使用二进制进行转换从而变成0、1取值,转换成二值离散型属性

4 混合类型属性的相似性计算方法

  • 对属性值进行预处理,预处理后的样本只包含连续型属性和二值离散型属性

               a 对连续型属性,将其各种取值进行规范化处理,使得属性取值在0和1之间   

            b 将多值离散型属性的取值转换为多个二值离散型属性

  • 计算公式:

         机器学习-聚类算法-k-means机器学习-聚类算法-k-means机器学习-聚类算法-k-means

 

 

 

k-means聚类算法-> 由簇中样本的平均值代表整个簇

:给定n个样本的数据集,以及要生成的k个簇,划分方法将样本组织为k个划分,k小于等于n,每一个划分代表一个簇。为无监督学习算法,n和k是已知。

划分准则:

    同一个簇中的样本要尽可 能的接近或者相似,不同簇中的样本尽可能远离或者不相似。

相似度量:

    样本间的距离

算法思想:

    初始随机给定k个簇中心,按照最邻近原则(knn)及那个待分类的样本点分到各个簇。然后按照平均法重新计算各个簇的质心,从而确定新的簇心,以此为循环迭代,直到簇心的移动距离小于某个给定的值。

    随机初始簇中心的选择不同会影响到最终的分类,尤其是数据样本比较少的情况下。