携英第7期|聚类算法与降维操作

Posted 西电华俱sharing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了携英第7期|聚类算法与降维操作相关的知识,希望对你有一定的参考价值。

分享时间:2017年12月24日星期日15:00

分享地点:华为俱乐部活动室

分享人:刘奥丽、代嫣冉

分享主题:聚类和PCA降维

分享人简介:

刘奥丽,计院硕士,研一,外设所,图像处理;

代嫣冉,通院硕士,研一,研究方向图像处理模式识别

分享内容简介:聚类算法与PCA线性降维



Part

1

1

初识聚类算法

 

        聚类试图将数据集中的样本分为若干个通常是不相交的子集,每个子集称为一个“簇”。聚类过程仅能自动形成簇结构,簇所对应的概念语义由使用者来把握和命名。聚类既能作为一个单独的过程,用于寻找数据内在的分布结构,也可以为分类等其他学习任务的前驱过程。例如EM算法。

2

性能度量

 

        聚类结果的“簇内相似度”高且“簇间相似度”低。聚类性能度量大致分两类:

1、外部指标:将聚类结果与某个“参考模型”进行比较

         以上性能度量的结果值均在[0,1]区间,值越大越好

2、内部指标:直接考察聚类结果而不利用任何参考模型

携英第7期|聚类算法与降维操作

    DBI值越小越好,DI值越大越好。

3

常见的几类聚类算法

 

        聚类算法分为原型聚类,密度聚类,层次聚类等。原型聚类典型的算法是k均值聚类算法。K均值聚类算法是先随机选取K个对象作为初始的聚类中心。然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。一旦全部对象都被分配了,每个聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。密度聚类,判断输入点是否为核心对象,找出核心对象的e邻域中的所有直接密度可达点。针对所有核心对象的e邻域所有直接密度可达点找到最大密度相连对象集合,中间涉及到一些密度可达对象的合并。直到所有核心对象的e邻域都遍历完毕。层次聚类,树的最底层有m个聚类,选取距离最近的两个聚类簇合并形成一个新的聚类簇。之后形成上一层聚类簇,重复合并距离最近的聚类簇。直到聚类簇的个数减少到K个,停止层次聚类算法。   

        聚类算法中K值的选取尤为重要,目前仍然不能自动化取合适的K值,K值取值常常与相应的应用相关。在谈到取K值有时会提及到一种方法,肘部法则。水平轴代表K的取值,竖直轴代表代价函数值,k值取变化最剧烈的,如下图中K取4比较好。

携英第7期|聚类算法与降维操作




Part

2

1

为什么要降维

 

        在开始真正介绍降维和度量学习之前,我们先来了解一个简单的机器学习算法:k 近邻。

k 近邻(k-Nearest Neighbor,简称kNN)学习是一种常用的监督学习方法,其工作机制非常简单:给定测试样本,基于某种距离度量找出训练集中与其距离最近的 k 个样本,然后基于这 k 个邻居的信息来进行预测。通常可以通过“投票法”或“平均法”来对测试样本进行预测。

        kNN学习算法的一个特点是它并不需要提前对模型进行训练,只在预测时对训练样本进行计算即可得到预测结果,这是一个典型的“懒惰学习”( 此类学习技术在训练阶段仅仅是把样本保存起来,训练时间开销为零,待收到测试样本后再进行处理)的算法。

        kNN 学习算法有一个性质,那就是如果满足在任意小距离内有一个样本的条件时,其错误率最差不超过最优贝叶斯分类器错误率的两倍。对于这么简单的一个学习算法,竟然最差错误率不超过贝叶斯最优分类器错误率的两倍,关键这个学习算法还不用提前训练,多么美好呀!当然,现实情况是上述条件并不容易满足。对于上节的假设条件,如果归一化后在0.001的距离内都有一个邻居结点的话,我们需要1000个样本数量平均分布到样本空间中才可行,这是属性数量为1的情况。当属性数量为20时,我们需要1000的20次方也就是10的60次方的数据量,这是个天文数字,这个数量级的数据是不可能获得的,更不要说在实际应用中样本的属性可能成千上万。

        在高维情形下出现的样本稀疏、距离计算困难等问题,是所有机器学习方法共同面临的严重障碍,被称为“维度灾难”(curse of dimensionality)缓解维数灾难的一个重要途径是降维(dimension reduction),亦称“维数约简”(即通过某种数学变换将原始高维属性空间转变为一个低维子空间,在这个子空间中样本密度大幅提高,距离计算也变得更加容易。

2

怎样去降维

 

     主成分分析(Principle Component Analysis)法是最常用的一种降维方法,它的核心思想可以这样理解:假设在空间中我们有m个点,我们希望对这些点进行有损压缩。有损表示我们使用更少的内存,但损失一些精度去存储这些点。我们希望损失的精度尽可能地少。我们就想将这些点用在低维度的空间表示。这样对于每个点x(i)会有一个对应的编码向量c(i)。如果l比n小,那我们就达到目的。这样我们就希望找到一个编码函数f(x)=c;找到一个解码函数,使得x约等于个g(f(x))。

        PCA由我们选择的解码函数而定。具体地,为了简化解码器,我们使用矩阵乘法将编码映射回Rn,即g(c)=Dc,其中D是解码矩阵。

        如何确定最优编码C*?即最小化原始输入向量X和重构向量g(c*)之间的距离,即求:

携英第7期|聚类算法与降维操作

    求得c=DTx,则f(x)=DTX那么PCA重构可以写为:r(x)=g(f(x))=DDTx。

        下面我们要做的就是挑选编码矩阵D。我们必须最小化所有维数和所有点上的误差矩阵的F范数:

携英第7期|聚类算法与降维操作

        为了推导出求的算法,我们首先考虑l=1的情况。这时,D是一个单一向量d,则上式可化简为:

携英第7期|聚类算法与降维操作

        这个优化问题可以通过特征分解来求解。最优d是XTX特征值对应的特征向量。以上推导只对于I=1的情况,仅得到第一个主成分。更一般地,我们希望得到的矩阵D是由几个最大的特征值对应的l个特征向量组成的。

3

PCA降维优缺点

 

优点:

    a.  各主成分之间正交,可消除原始数据成分间的相互影响

    b.  可减少指标选择的工作量

    c.  计算方法简单,易于在计算机上实现。

缺点

    a. 主成分解释其含义往往具有一定的模糊性,不如原始样本完整

    b. 贡献率小的主成分往往可能含有对样本差异的重要信息

    c. 特征值矩阵的正交向量空间是否唯一有待讨论

携英第7期|聚类算法与降维操作

不变的爆照时间

携英第7期|聚类算法与降维操作
携英第7期|聚类算法与降维操作

会机器学习的妹子看起来就好迷人

以上是关于携英第7期|聚类算法与降维操作的主要内容,如果未能解决你的问题,请参考以下文章

史诗级干货长文聚类算法

聚类算法降维问题(补充篇)

谱聚类算法总结

白话啥是谱聚类算法

内置降维聚类等算法,时间序列数据分析Python库Deeptime

使用聚类算法(Kmeans)进行数据降维并作为分类算法逻辑回归(logistic Regression)的数据预处理步骤实战