一 什么是聚类
聚类是一种经典的无监督学习方法,无监督学习的目标是通过对无标记训练样本的学习,发掘和揭示数据集本身潜在的结构与规律,即不依赖于训练数据集的类标记信息。聚类则是试图将数据集的样本划分为若干个互不相交的类簇,从而每个簇对应一个潜在的类别。
聚类直观上来说是将相似的样本聚在一起,从而形成一个类簇(cluster)。那首先的问题是如何来度量相似性(similarity measure)呢?这便是距离度量,在生活中我们说差别小则相似,对应到多维样本,每个样本可以对应于高维空间中的一个数据点,若它们的距离相近,我们便可以称它们相似。那接着如何来评价聚类结果的好坏呢?这便是性能度量,性能度量为评价聚类结果的好坏提供了一系列有效性指标。
二 距离度量
谈及距离度量,最熟悉的莫过于欧式距离了,从年头一直用到年尾的距离计算公式:即对应属性之间相减的平方和再开根号。度量距离还有其它的很多经典方法,通常它们需要满足一些基本性质:
这里列举几种常见的距离度量方式。
2.1 闵可夫斯基距离
最常用的距离度量方法是**“闵可夫斯基距离”(Minkowski distance)**:
当p=1时,闵可夫斯基距离即曼哈顿距离(Manhattan distance):
当p=2时,闵可夫斯基距离即欧氏距离(Euclidean distance):
2.2 余弦距离
余弦距离以两向量夹角余弦值来反映相似度,取值在[0,1][0,1][0,1]之间,值越大,相似度越大。
dist(X,Y)=cos(X,Y)=∑i=1dxiyi∑i=1d(xi)2∑i=1d(yi)2dist(X,Y) = \cos (X,Y) = \frac{ {\sum\nolimits_{i = 1}^d { {x_i}{y_i}} }}{ {\sqrt {\sum\nolimits_{i = 1}^d { { {({x_i})}^2}} } \sqrt {\sum\nolimits_{i = 1}^d { { {({y_i})}^2}} } }}dist(X,Y)=cos(X,Y)=∑i