机器学习与数据挖掘学习笔记(3)聚类
目录
一、聚类的定义
二、模型的性能度量
三、常见的聚类算法
四、K-means
五、层次聚类法
六、基于密度的聚类方法
一、聚类的定义
聚类其本质是通过分析和组织处理庞大的数量未知标注的数据集合,依据其固有的特征将其分组为若干个类别.这种分类方法的核心目的是实现同类内部样本高度相似化以及不同类别之间的样本显著差异化,从而提高数据分析的有效性和准确性.
在我们之前的课程中学习过,在这些有监督的学习任务中涉及到了分类和回归两种技术;相比之下,在无监督学习场景下进行的数据分析则被称为聚类分析。其提供的训练数据集中的每个样本都有对应的标签信息;而其提供的数据集中每个样本都没有预设或指定的目标标签。
二、模型的性能度量
为了辨别不同聚类模型之间的优劣差异, 建立一套科学合理的评估标准是必要的.
聚类性能指标一般有如下指标:
1、准确率

其中

代表正确聚类的数据个数,N代表数据的总个数
2、纯度

其中N代表数据的总个数,

代表第k个聚类簇,

是数据集合,

代表第j个数据
3、归一化互信息
互信息是至两个变量的关联程度,计算公式如下:

标准互信息是将互信息归一化,通常是除以最大熵

4、兰德指数

其中TP、TN、FP、FN的含义如下表所示:
| 真实值 | 预测值 | |
|---|---|---|
| 正例 | 反例 | |
| 正例 | TP(真正例) | FN(假反例) |
| 反例 | FP(假正例) | TN(真反例) |
5、精准率、召回率、F-messure
精准率:

召回率:

F-messure:

三、常见的聚类算法
- k-means
- 层次聚类
- 密度聚类
四、K-means
K均值算法是一种非常常见的聚类算法。
其核心思路在于最初随机选择k个样本作为簇心,并通过迭代过程逐步优化这些簇心的位置以实现数据聚类的目标。具体而言,在每一轮迭代中首先计算每个待分类样本与所有现有簇心之间的距离,并将其归入与其最近的簇心所属的类别中;接着重新确定每个簇类的新中心位置;并根据新确定的位置更新各簇心坐标值,并重复以上步骤直至算法收敛为止。
算法的原理非常简单,实现起来非常容易,需要给定的参数只有k的值。
但是难以准确确定k值的选择,在处理具有空间信息的结构性样本时效果欠佳;而这些初始选定的k值对聚类结果会产生显著影响。


五、层次聚类法
层次聚类的方法不是预先将其划分为K个簇,并不是让每个样本都单独成一个簇
然后计算各个簇之间的距离,将最近的两个簇合并为一个新的簇。
然后重新计算各个簇之间的距离,直到最后合并只剩下一个簇。
其聚类效果如下图所示:

六、基于密度的聚类方法
该方法基于数据样本集合在其空间分布密度上的分析实现聚类过程,在无需预先指定簇的数量的前提下可自动确定簇的形态和数量。这些算法通过分析数据的空间特征自动确定簇的数量,并且能够有效处理噪声点和非凸形状的数据集。
首先介绍一些基本概念:

邻域:以给定对象为圆心,半径为

的邻域为该对象的

邻域。
- 核心对象:若

如果某个区域包含至少MinPts个对象,则该区域被称为核心区域。
- 直接密度可达:如果存在一条由多个点组成的链路。

,对于

,

是

从关于

和MinPts直接密度可达的,则对象p是从对象q关于

和MinPts直接密度可达的。
- 密度可达:如果存在对象

,使得对象p和q都是从

关于

和MinPts密度可达的,那么对象p到q是关于

和MinPts密度可达的。
DBSCAN算法的基本步骤如下:

主要依赖于数据本身的分布情况,并无需预先设定类别数量;此外,在处理结构性的空间信息数据方面表现出色;同时能够有效地应对噪声数据。
但是主要缺陷是高度依赖基于距离计算规则的选择,在面对高维数据的情形下可能会受到无关维度的影响。
