聚类算法
聚类算法是一种经典的无监督学习方法,无监督学习的目标是通过对无标记训练样本的学习,发掘和揭示数据集本身的潜在结构与j规律,即不依赖于训练数据集的类标记信息。聚类则试图将数据集的样本划分为若干个互相相交的类簇,从而每个簇对应一个潜在的类别。
聚类直观上来说是将相似的样本聚集在一起,从而形成一个类簇,(Cluster), 那首先的问题是如何度量相似性,这便是距离度量,在生活中,我们说差别小则相似,对应多维样本,每个样本可以对应高维空间中的一个数据点,若它们的距离相近,我们便可以称其为相似,那接着如何来评价聚类结果的好坏呢?这便是性能度量,性能度量为评价聚类结果的好坏提供了一系列有效性指标。
距离度量
谈及距离度量,最熟悉的莫过于 欧式距离了,从年头一直用到年尾的距离计算公式,即对应属性之间相减的平方和在开根号,度量距离还有很多其他经典的度量方法,通常它们需要满足以下基本性质:
非负性dist(xi,xj)>=0;dist(x_i,x_j)>=0;dist(xi,xj)>=0;
同一性dist(xi,xj)=0当且仅当xi=xjdist(x_i,x_j) = 0当且仅当x_i = x_jdist(xi,xj)=0当且仅当xi=xj
对称性dist(xi,xj)=dist(xj,xi)dist(x_i,x_j) = dist(x_j,x_i)dist(xi,xj)=dist(xj,xi)
直递性dist(xi,xj)<=dist(xi,xk)+dist(xk,xj)dist(x_i,x_j)<=dist(x_i,x_k) + dist(x_k,x_j)dist(xi,xj)<=dist(xi,xk)+dist(xk,xj) 即三角不等式,两边之和大于第三边。
最常用的距离度量方法是闵可夫斯基距离:
distmk(xi,xj)=(∑u=1n∣xiu−xju∣)1pdist_{mk}(x_i,x_j) = (\sum^n_{u = 1}|x_{iu} - x_{ju}|)^{\frac{1}{p}}distmk(xi,xj)=(