一、聚类算法

1、聚类算法概述

聚类算法:一种典型的无监督学习算法(没有目标值),主要用于将相似的样本自动归到一个类别中。在聚类算法中根据样本之间的相似性,将样本划分到不同的类别中,对于不同的相似度计算方法,会得到不同的聚类结果,常用的相似度计算方法有欧式距离法

1.1 聚类的基本思想

给定一个有 N个对象的数据集,构造数据的 kkk 个簇,k≤nk≤nk≤n。满足条件:

  • 每一个簇至少包含一个对象;
  • 每一个对象属于且仅属于一个簇;
  • 将满足上述条件的 kkk 个簇称作一个合理划分;

基本思想:对于给定的类别数目 kkk,首先给出初始划分,通过迭代改变样本和簇的隶属关系,使得每一次改进之后的划分方案都较前一次好 。

1.2 认识聚类算法


使用不同的聚类准则,产生的聚类结果不同。

1.3 聚类算法在现实中的应用

  • 用户画像,广告推荐,Data Segmentation,搜索引擎的流量推荐,恶意流量识别
  • 基于位置信息的商业推送,新闻聚类,筛选排序
  • 图像分割,降维,识别;离群点检测;信用卡异常消费;发掘相同功能的基因片段

1.4 “聚类算法”与“分类算法”的区别与联系

  • 聚类算法是无监督的学习算法,而分类算法属于监督的学习算法。
  • 对于要用到分类算法的项目,如果初始时没有分类目标值,则先用聚类算法进行聚合,得出分类标签(目标值),然后再对待分类样本集进行分类算法。
  • “聚类算法”是“分类算法”(如果无现成的目标值)的先导步骤

1.5 相似度/距离计算方法总结

1.6 聚类算法有效性评估指标:轮廓系数(Silhouette Coefficient)

结合了聚类的凝聚度(Cohesion)和分离度(Separation),用于评估聚类的有效性:
SCi=bi−aimax(bi,ai)\begin{aligned}SC_i=\frac{b_i-a_i}{max(b_i,a_i)}\end{aligned}SCi​=max(bi​,ai​)bi​−ai​​​