机器学习自学笔记——聚类
Posted 康康好老啊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习自学笔记——聚类相关的知识,希望对你有一定的参考价值。
聚类的基本概念
聚类,顾名思义,就是将一个数据集中各个样本点聚集成不同的“类”。每个类中的样本点都有某些相似的特征。比如图书馆中,会把成百上千的书分成不同的类别:科普书、漫画书、科幻书等等,方便人们查找。每一种类别的书都有相似之处:比如科普书类别中的书基本上都是普及一些科学知识,这就是他们的相似之处。而聚类可以理解为“将一堆图书分为不同的类别的过程”。
这里不得不说明一下“聚类”和“分类”的区别:
- 聚类是刚创立一个图书馆,通过各种渠道获得了一堆图书,事先我不知道可以分为哪些类,但是随着分类的进行,逐渐被分为不同的类。这是一种无监督学习。
- 分类是现在有一堆图书,要将其按类别放入图书馆的书架上,这些类别都是事先确定的,比如科普类、文学类、历史类等等,按类别放入即可。这是一种监督学习。
数据的聚类方法有很多,如下图:
本文之后会主要介绍k-means(k均值聚类)和层次聚类算法中的聚合聚类。
上面这些聚类算法有一些共同步骤:
- 数据准备:对数据进行特征标准化和降维处理。就像将事先准备好的一本本图书一本本堆叠规整放好
- 特征选择/提取:从最初的特征中选择最有效的特征,进行转换形成新的突出特征,并将其存储在向量中。就像将图书中十分破烂或者不良的剔除,并存储在专门存储图书的地方
- 进行聚类:基于某种距离函数进行相似度度量,并形成聚簇。就像按照某种规律(书名出现相同的字)将图书之间归类(都出现百科归一类、都出现秋天归一类······)
- 结果评估:对聚类的分类结果进行评估,判断聚类进行的优劣。就像将图书聚类完之后,抽取图书并翻看内容来判断其类别是否正确
相似度度量
在上面的聚类算法的步骤中,“进行聚类”这一步骤中出现了“相似度度量”,这也是聚类算法中最重要的点。比如像我用图书的例子进行类比时,在“进行聚类”这一步说得就十分不清楚,因为我没法找到一个合适的标准去衡量图书之间的相似程度。
在聚类算法中,我们会通过计算“距离”去衡量相似度。当我们将特征数字化之后,特征之间是否相似也就是特征数字之间是否大小接近。需要注意的是,这里的“距离”是广义距离,并不仅仅是我们通常理解的 d 1 − d 2 d_1-d_2 d1−d2这种距离。下面我们来看几种比较常见的距离:
1、闵可夫斯基距离
① 欧式距离
欧式距离就是我们最常见的距离度量方法,就是两点之间的最短距离。
假设两个点的坐标分别为
x
1
(
x
11
,
x
12
,
x
13
,
⋅
⋅
⋅
,
x
1
n
)
x_1(x_11,x_12,x_13,···,x_1n)
x1(x11,x12,x13,⋅⋅⋅,x1n),
x
2
(
x
21
,
x
22
,
x
23
,
⋅
⋅
⋅
,
x
2
n
)
x_2(x_21,x_22,x_23,···,x_2n)
x2(x21,x22,x23,⋅⋅⋅,x2n),(我们也称
x
11
,
x
12
,
x
13
,
⋅
⋅
⋅
,
x
1
n
x_11,x_12,x_13,···,x_1n
x11,x12,x13,⋅⋅⋅,x1n为
x
1
x_1
x1的特征)则这两个点的欧式距离为:
L
(
x
1
,
x
2
)
=
∑
i
=
1
n
(
x
1
i
−
x
2
i
)
2
L(x_1,x_2)=\\sqrt\\sum_i=1^n(x_1i-x_2i)^2
L(x1,x2)=i=1∑n(x1i−x2i)2
② 曼哈顿距离
假设两个点的坐标分别为
x
1
(
x
11
,
x
12
,
x
13
,
⋅
⋅
⋅
,
x
1
n
)
x_1(x_11,x_12,x_13,···,x_1n)
x1(x11,x12,x13,⋅⋅⋅,x1n),
x
2
(
x
21
,
x
22
,
x
23
,
⋅
⋅
⋅
,
x
2
n
)
x_2(x_21,x_22,x_23,···,x_2n)
x2(x21,x22,x23,⋅⋅⋅,x2n),则这两个点的曼哈顿距离为:
L
(
x
1
,
x
2
)
=
∑
i
=
1
n
∣
x
1
i
−
x
2
i
∣
L(x_1,x_2)=\\sum_i=1^n|x_1i-x_2i|
L(x1,x2)=i=1∑n∣x1i−x2i∣
③ 切比雪夫距离
假设两个点的坐标分别为
x
1
(
x
11
,
x
12
,
x
13
,
⋅
⋅
⋅
,
x
1
n
)
x_1(x_11,x_12,x_13,···,x_1n)
x1(x11,x12,x13,⋅⋅⋅,x1n),
x
2
(
x
21
,
x
22
,
x
23
,
⋅
⋅
⋅
,
x
2
n
)
x_2(x_21,x_22,x_23,···,x_2n)
x2(x21,x22,x23,⋅⋅⋅,x2n),则这两个点的切比雪夫距离为:
L
(
x
1
,
x
2
)
=
(
∑
i
=
1
n
∣
x
1
i
−
x
2
i
∣
p
)
1
p
L(x_1,x_2)=(\\sum_i=1^n|x_1i-x_2i|^p)^\\frac1p
L(x1,x2)=(i=1∑n∣x1i−x2i∣p)p1
其中p趋于正无穷。
其实,上面三种计算方法可以进行一个统一,这就是这一部分的小标题——闵可夫斯基距离。欧氏距离是闵可夫斯基距离 L ( x 1 , x 2 ) = ( ∑ i = 1 n ∣ x 1 i − x 2 i ∣ p ) 1 p L(x_1,x_2)=(\\sum_i=1^n|x_1i-x_2i|^p)^\\frac1p L(x1,x2)=(∑i=1n∣x1i−x2i∣p)p1中 p = 2 p=2 p=
机器学习笔记之谱聚类k-Means聚类算法介绍
机器学习笔记之谱聚类——K-Means聚类算法介绍
引言
从本节开始,将介绍聚类任务,本节将介绍 k-Means \\textk-Means k-Means算法。
回顾:高斯混合模型
高斯混合模型( Gaussian Mixture Model,GMM \\textGaussian Mixture Model,GMM Gaussian Mixture Model,GMM)是一种处理聚类任务的常用模型。作为一种概率生成模型,它的概率图结构可表示为如下形式:
其中隐变量 Z \\mathcal Z Z是一个离散型随机变量,对应随机变量 X \\mathcal X X的后验结果服从高斯分布:
Z ∼ Categorical Distribution ( 1 , 2 , ⋯ , K ) X ∣ Z ∼ N ( μ k , Σ k ) k ∈ 1 , 2 , ⋯ , K \\beginaligned \\mathcal Z & \\sim \\textCategorical Distribution(1,2,\\cdots,\\mathcal K) \\\\ \\mathcal X & \\mid \\mathcal Z \\sim \\mathcal N(\\mu_k,\\Sigma_k) \\quad k \\in \\1,2,\\cdots,\\mathcal K\\ \\endaligned ZX∼Categorical Distribution(1,2,⋯,K)∣Z∼N(μk,Σk)k∈1,2,⋯,K
从生成模型的角度,高斯混合模型对 P ( X , Z ) \\mathcal P(\\mathcal X,\\mathcal Z) P(X,Z)进行建模。关于 X \\mathcal X X的概率密度函数 P ( X ) \\mathcal P(\\mathcal X) P(X)可表示为如下形式:
其中
P Z k \\mathcal P_\\mathcal Z_k PZk表示隐变量
Z \\mathcal Z Z选择离散结果
k k k时的概率结果;
μ Z k , Σ Z k \\mu_\\mathcal Z_k,\\Sigma_\\mathcal Z_k μZk,ΣZk表示对应
X ∣ Z k \\mathcal X \\mid \\mathcal Z_k X∣Zk高斯分布的均值和协方差信息。
P ( X ) = ∑ Z P ( X , Z ) = ∑ Z P ( Z ) ⋅ P ( X ∣ Z ) = ∑ k = 1 K P Z k ⋅ N ( μ Z k , Σ Z k ) \\beginaligned \\mathcal P(\\mathcal X) & = \\sum_\\mathcal Z \\mathcal P(\\mathcal X,\\mathcal Z) \\\\ & = \\sum_\\mathcal Z \\mathcal P(\\mathcal Z) \\cdot \\mathcal P(\\mathcal X \\mid \\mathcal Z) \\\\ & = \\sum_k=1^\\mathcal K\\mathcal P_\\mathcal Z_k \\cdot \\mathcal N(\\mu_\\mathcal Z_k,\\Sigma_\\mathcal Z_k) \\endaligned P(X)=Z∑P(X,Z)=Z∑P(Z)⋅P(X∣Z)=k=1∑KPZk⋅N(μZk,ΣZk)聚类任务基本介绍
在生成模型综述——监督学习与无监督学习中简单介绍过,聚类( Clustering \\textClustering Clustering)任务属于无监督学习( Unsupervised Learning \\textUnsupervised Learning Unsupervised Learning)任务。无监督学习任务的特点是:样本标签是未知的。而无监督学习的目标是通过学习无标签的样本来揭示数据的内在性质及规律。
而聚类试图将数据集内的样本划分为若干个子集,每个子集称为一个簇( Cluster \\textCluster Cluster)。从概率/非概率模型的角度划分,概率模型的典型模型是高斯混合模型;而非概率的聚类模型,其主要代表是 k k k均值算法( k-Means \\textk-Means k-Means)。
距离计算
在介绍 k-Means \\textk-Means k-Means算法之前,需要介绍聚类的有效性指标( Vaildity Index \\textVaildity Index Vaildity Index)。从直观上描述,在聚类的过程我们更希望物以类聚——相同簇的样本尽可能地彼此相似,不同簇的样本尽可能地不同。
对于两个样本点,通常使用计算它们在样本空间中的距离 来描述两样本之间的相似性程度。样本之间距离越小,样本之间的相似性程度越高,反之同理。
已知两个样本 x ( i ) , x ( j ) x^(i),x^(j) x(i),x(j)表示如下:
它们均属于
p p p维特征空间,即
x ( i ) , x ( j ) ∈ R p x^(i),x^(j) \\in \\mathbb R^p x(i),x(j)∈Rp.
x ( i ) = ( x 1 ( i ) , x 2 ( i ) , ⋯ , x p ( i ) ) T x ( j ) = ( x 1 ( j ) , x 2 ( j ) , ⋯ , x p ( j ) ) T \\begincases x^(i) = \\left(x_1^(i),x_2^(i),\\cdots,x_p^(i)\\right)^T \\\\ x^(j) = \\left(x_1^(j),x_2^(j),\\cdots,x_p^(j)\\right)^T \\endcases ⎩ ⎨ ⎧x(i)=(x1(i),x2(i),⋯,xp(i))Tx(j)=(x1(j),x2(j),⋯,xp(j))T
关于描述样本 x ( i ) , x ( j ) x^(i),x^(j) x(i),x(j)之间的距离,最常用的方法是明可夫斯基距离( Minkowski Distance \\textMinkowski Distance Minkowski Distance):
其中参数
m ≥ 1 m \\geq 1 m≥1.
Dist mk ( x ( i ) , x ( j ) ) = ( ∑ k = 1 p ∣ x k ( i ) − x k ( j ) ∣ m ) 1 m \\textDist_\\textmk(x^(i),x^(j)) = \\left(\\sum_k=1^p \\left|x_k^(i) - x_k^(j)\\right|^m\\right)^\\frac1m Distmk(x(机器学习自学笔记——聚类机器学习-kmeans/kmedoids/spectralcluster聚类算法