当前位置:   article > 正文

AI实训(三):聚类算法、支持向量机算法_支持向量聚类

支持向量聚类

1. 聚类算法

聚类概念:

  • 无监督问题:我们手里没有标签了
  • 聚类:相似的东西分到一组
  • 难点:如何评估,如何调参

有个比较好玩的聚类算法可视化网站,可以方便理解聚类算法。
k-means
DBSCAN

1.1 K_means算法

1、基本概念

  • 要得到簇的个数,需要指定K值(也就是分为K类)
  • 质心:均值,即向量各维取平均即可(K个质心)
  • 距离的度量:常用欧几里得距离和余弦相似度(先标准化)
  • 优化目标: m i n ∑ i = 1 K ∑ x ∈ C i d i s t ( c i , x ) 2 min \sum \limits_{i=1}^K \sum \limits_{x \in C_i} dist(c_i,x)^2 mini=1KxCidist(ci,x)2

2、工作流程

在这里插入图片描述
(a)一堆没有标签的样本点
(b)随机初始化两个中心点(一红标签一蓝标签)
(c)遍历所有样本点,样本点到哪个中心点的距离最短,就贴上相应的标签。
(d)分别计算红色簇和蓝色簇的质心,作为新的中心点
(e)根据新中心点,重复(c)步骤
(f)重复(d)步骤
一直到质心不再改变,有时候可能会无限迭代下去,这时可以设置最大迭代次数。

由于是随机初始化中心点,所以同样的数据集,相同的K值,运行多次,每次得到的聚类效果可能都不一样。sklearn工具包中的k-means算法是默认跑10次然后取最好的那一次。

3、评估方法

注意:这里的评估方法只是一个参考,并不代表最佳的参数选择方案。

  • Inertia指标:也就是每个样本与其质心的距离的平方的总和,在sklearn工具包中,这个指标值可以通过kmeans.inertia_属性来获得
  • 轮廓系数
推荐阅读
相关标签