《机器学习原理与实战》第5章-无监督学习_第1页
《机器学习原理与实战》第5章-无监督学习_第2页
《机器学习原理与实战》第5章-无监督学习_第3页
《机器学习原理与实战》第5章-无监督学习_第4页
《机器学习原理与实战》第5章-无监督学习_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

无监督学习22-10月-241降维目录无监督学习简介2聚类任务3无监督学习也属于机器学习,与有监督学习最大的区别在于,无监督学习输入的数据集中没有事先标记好的历史范例,需要算法自行从数据中寻找出潜在的规律与规则,自动对输入的数据进行分类和分群。有监督学习算法从数据集中寻找特定的模式用于特定的用途,而无监督学习算法从数据集中揭露数据中潜在的性质与规则,更为倾向于理解数据本身。无监督学习简介无监督学习的分类效果精度通常低于有监督学习,但也有一定的优势。在实际应用中,给训练集中的数据贴上标签往往是一个非常耗费时间的过程,并且要能为数据贴上标签还需要具备有先验知识。使用无监督学习算法从庞大的样本集合中找出不同的类别,由人工对这些类别进行标注后,再进行后续处理是一种常见的应用方法。无监督学习算法也可以用于特征的筛选,之后再用于构建分类器的训练。无监督学习的一个典型应用是聚类分析(ClusterAnalysis),在聚类过程中数据依据相似度自动聚成一簇,这个过程不需要人工干预。除聚类外,常见的无监督学习的应用还有降维(DimensionalityReduce)。无监督学习简介1降维目录无监督学习简介2聚类任务3在进行样本数据的聚类分析时,有时涉及的变量或数据组属性较多,这增加了算法计算的空间复杂度。降维处理是一种行之有效的降低数据分析的复杂性手段。其核心思想是,通过原来变量组或数据组属性的线性或非线性重构达到简化数据目的。常见的降维方法有:主成分分析(PrincipalComponentAnalysis,PCA)核线性变换降维PCA是一种通过降维技术把多个变量化为几个新的综合变量的统计分析方法。新的综合变量是原始变量的线性组合,能够反映原始变量的绝大部分信息,且新变量之间互不相关。设

为一个

维随机向量,并假定二阶矩阵存在,记均值向量为

,协方差矩阵为

,进行如下所示的线性变换。

PCA上式有以下约束条件。

时,

,即

不相关

这里的

在本章中有其实际意义。设

为的特征值

为相应的一组正交单位特征向量,

的主成分就是以

的特征向量为系数的线性组合,它们互不相关,其方差为

的特征值。PCA当

时,

达到最大值,所求的

就是第一主成分。如果第一主成分所含信息不够多,不足以代表原始的

个变量,则需要再考虑使用

。为了使

所含的信息与

不重叠,要求

。当

时,

达到最大值,所求的

就是第二主成分。类似的,可以再定义第三主成分,直至第

主成分。一般,

的第

主成分是指约束条件下的

,主成分向量

与原始向量

的关系为

,其中。

PCA第

主成分

在总方差

中的比例

称为主成分

的贡献率,第一主成分

的贡献率最大,表明它解释原始变量的能力最强,y2~yp的解释能力依次减弱。主成分分析的目的就是为了减少变量的个数,因而一般不会使用所有

个主成分,忽略一些带有较小方差的主成分不会给总方差带来太大的影响。前

个主成分的贡献率之和在总方差中的比例

称为主成分

的累计贡献率,它表明了

解释原始变量的能力。通常取较小(相对于

)的

,可使得累计贡献率达到一个较高的百分比(如80%~90%),此时,

可代替

,从而达到降维的目的,而信息的损失却不多。PCA使用scikit-learn库中decomposition模块的PCA类可以创建PCA模型,其基本语法格式如下。PCA类的常用的参数及其说明,如表所示。PCAclasssklearn.decomposition.PCA(n_components=None,copy=True,whiten=False,svd_solver='auto',tol=0.0,iterated_power='auto',random_state=None)参数名称说明n_components接收int或str。表示所要保留的主成分个数n,即保留下来的特征个数n,赋值为int时,表示降维的维度,如n_components=1,将把原始数据降到一个维度。赋值为str时,表示降维的模式,如取值为'mle'时,将自动选取特征个数n,使得满足所要求的方差百分比。默认为NonePCA类的常用的参数及其说明,如表所示。PCA参数名称说明copy接收bool。表示是否在运行算法时,将原始训练数据复制一份。若为True,则运行后,原始训练数据的值不会有任何改变,因为是在原始数据的副本上进行运算;若为False,则运行后,原始训练数据的值会发生改变。默认为Truewhiten接收bool。表示是否白化,使得每个特征具有相同的方差。默认为False采用线性降维方法降低数据维度时,通常是在假设从高维空间到低维空间的函数映射是线性的条件下进行的,然而在有些时候,高维空间是线性不可分的,需要找到一个非线性函数映射才能进行恰当的降维,这就是非线性降维。基于核变化的线性降维方法是非线性降维的常用方法,本节以核主成分分析(KernelizedPAC,KPAC)为例进行简要说明。在进行数据分析的过程中,如果遇到线性不可分的情况,通常可以采用KPAC方法进行数据的主成分分析。KPAC通过将线性不可分的输入数据映射到线性可分的高维特征空间中,然后在特征空间再以PCA降维,进而实现数据的降维处理。核化线性降维假设样本点

通过映射

映射到由确定的超平面之后,且经过中心化处理以后的像为。在高维特征空间进行数据的主成分分析,即求解下式。在上式中

为协方差矩阵。由上式可得下式。

核化线性降维在上式中

。考虑到

,又可写为下式。所以式又可改写为下式。

核化线性降维由于函数

的具体形式是未知,为便于计算,在此引入核函数如下式。再将式

与上式代入

,化简得下式。其中

对应的核矩阵,

。对

进行特征值分解,即可完成主成分分析。对于新样本

,其投影后的第

维坐标为下式。上式中已经经过标准化,是的第个分量。核化线性降维使用scikit-learn库中decomposition模块的KernelPCA类可以创建KernelPCA模型,其基本语法格式如下。核化线性降维classsklearn.decomposition.KernelPCA(n_components=None,kernel=’linear’,gamma=None,degree=3,coef0=1,kernel_params=None,alpha=1.0,fit_inverse_transform=False,eigen_solver=’auto’,tol=0,max_iter=None,remove_zero_eig=False,random_state=None,copy_X=True,n_jobs=None)KernelPCA类的常用的参数及其说明,如表所示。核化线性降维参数名称说明n_components接收int。表示所要保留的主成分个数n,即保留下来的特征个数n,若为None时,则保留所有非零特征。默认为Nonekernel接收str。表示使用的核函数,可选“linear”“poly”“rbf”“sigmoid”“cosine”“precomputed”。默认为“linear”gamma接收str。表示核函数指定为“rbf”“poly”“sigmoid”时所使用的系数;取值为“auto”时,系数为1/n_features。默认为Nonedegree接收int。表示当核函数是多项式时,指定多项式的系数,对于其他核函数无效。默认为3KernelPCA类的常用的参数及其说明,如表所示。核化线性降维参数名称说明eigen_solver接收str。表示求解特征值的算法。“auto”表示自动选择,“dense”表示使用dense特征值求解器,“arpack”表示使用arpack特征值求解器,用于特征数量远小于样本数量的情形。默认为“auto”tol接收int。表示arpock特征值求解器的收敛阙值,0表示自动选择阙值。默认为0max_iter接收int。表示arpock特征值求解器的最大迭代次数,None表示自动选择。默认为Nonerandom_state接收int或RandomStateinstance。该参数为int类型时,为随机数生成器使用的种子;该参数为RandomStateinstance时,为随机数生成器;若为None时,使用的随机数生成器为np.random模块使用的RandomState实例。默认为None1降维目录无监督学习简介2聚类任务3在无监督学习中,样本的标记信息是未知的,目标是通过对无标记样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础。在此类学习任务中,应用最广泛的就是聚类。假定样本集合

,其中

。聚类的目的就是将集合

按照一定规则划分成若干子集

,且满足

,且

。聚类得到的每个子集

称为一个簇,若

,称

的簇标记,则聚类的结果可以用向量

表示。聚类的目的是把待分类数据按照一定规则分成若干类,这些类不是事先给定的,而是根据待分类数据的特征确定,且对类的数目和结构不做任何假定。例如,市场分析人员通过聚类将客户分成不同的客户群,以购买模式刻画不同客户群特征。聚类任务聚类性能度量指标也称为聚类有效性指标,用以衡量聚类结果的优劣。另外,若已明确了性能度量指标,则也可将其作为聚类过程中的优化目标,从而更好地提高聚类效果。当通过一定的聚类算法得到聚类结果之后,通常认为簇内相似度高越好,而簇间的相似度低越好。聚合性能度量的指标,若是由某个参考模型给出,这类指标称为外部指标;若是通过直接考察聚类结果给出,这类指标称为内部指标。性能度量假设样本集合

的聚类结果为

为簇标记量;参考模型给出的聚类结果为

为簇标记量。定义如下四个集合分别为:性能度量1.外部指标若令

则可以给出常用的3个聚类性能度量外部指标。Jaccard系数(JaccardCoeffient,JC),如下式。FM系数(FowlkesandMallowsIndex,FMI),如下式。

性能度量Rand指数(RandIndex,RI),如下式。

以上3个聚类性能度量外部指标的计算结果在[0,1]区间内,值越大越好。性能度量假设样本集合

的聚类结果为

。定义如下4个函数:性能度量2.内部指标其中,为距离计算函数,用于计算两个样本之间的距离,代表簇的中心点。显然,对应簇内样本间的平均距离,对应簇内样本间的最远距离,对应簇与簇最近样本间的距离,对应簇与簇中心点间的距离。基于式、、和

,可得到如下2个常用的聚类性能度量的内部指标。性能度量DB指数(Davies-BouldinIndex,DBI),如下式。Dunn指数(DunnIndex,DI),如下式。显然,DBI的计算结果越小越表明聚类效果好,而DI则正相反。性能度量聚类分析的目的是把分类对象按照一定的规则分成若干类,同一类的对象具有某种相似性,而不同类的对象之间不相似。通常情况下,聚类结果的优劣可以采用对象之间距离的远近来评价。在聚类分析中,给定样本点

,常用的距离计算公式包括以下几种。欧式距离(Euclideandistance),如下。距离计算曼哈顿距离(Manhattandistance),如下。切比雪夫距离(Chebyshevdistance),如下。闵文斯基距离(Minkowskidistance),如下。距离计算针对于无序属性,无若令

表示在属性

上取值为

的样本数,

表示第

个样本簇中在属性

上取值为

的样本数,

为样本簇个数,则在属性

上两个离散值

的距离,可采用VDM距离,如下。距离计算原型聚类亦称为“基于原型的聚类”。此类算法假设聚类结构能够通过一组原型刻画,在实践操作中极为常用。通常情形下,算法先对原型进行初始化,然后对原型进行迭代更新求解。采用不同的原型表示、不同的求解方式,将产生不同的算法。下面重点介绍3种常用的原型聚类算法。原型聚类在K均值(K-Means)算法中,首先随机初始化类的中心,然后将每个样本点按照距离最近的原则划归为相应的类内,更新类中心,直至样本点到相应类中心的距离平方和达到最小。假设样本集合

,给定需划分的簇数,聚类的结果为

。则K均值算法的优化目标的表达式如下式。式中,为簇的均值向量。原型聚类1.K均值算法虽然理论上可以穷举所有聚类的结果,然后给出最后的聚类结果,但是该方法的计算复杂性过大而无法实际应用。因此在实际中,对K均值算法采用贪婪策略,求得优化目标的近似解。K均值算法的基本过程,如图所示。原型聚类K均值算法的具体步骤如下。(1)输入样本集合及聚类簇数。(2)从样本集中随机选择K个样本点作为K个簇中心。(3)计算每个样本点到每个簇中心的距离。(4)按照距离远近将每个样本点归入相应的簇内。(5)更新每个簇的中心。(6)重复步骤(2)~(5),直至簇中心不再变化。(7)输出聚类结果。原型聚类学习向量量化(LearningVectorQuantization,LVQ)也是一种原型聚类算法。LVQ算法不同于K均值算法,该算法是假设样本数据是带有类别标记的,通过监督信息来辅助聚类。在该算法中,引入了原型向量的更新学习规则,根据每次迭代中样本点与聚类原型的类标记是否相同,针对聚类原型进行更新,直到满足终止条件。原型聚类2.学习向量量化假设样本集合

,给定原型向量个数

,学习率

,预设标记为

。给定一组初始聚类原型向量,在样本集合中随机选取样本

,该样本点最近的原型向量为

。LVQ按照如下的规则将原型

更新到原型

。原型聚类当

时,原型

更新为

,否则原型

更新为

。根据以上的原型更新规则,LVQ算法的基本过程如图所示。原型聚类LVQ算法的具体步骤如下。(1)输入样本集合、预设类标记及学习率。(2)从样本集中随机选择K个样本点作为K个原型。(3)随机选择一个样本点,计算该样本点到k个原型的距离,并确定与之最近的原型。(4)更新选择出的原型。(5)重复步骤(2)~(4)直至满足停止条件(通常为最大迭代次数)。(6)输出原型向量。(7)计算每个样本点到原型向量的距离,并归类。(8)输出聚类结果。原型聚类高斯混合(Mixture-of-Gaussian)聚类算法是通过高斯混合分布的概率模型,给出聚类结果的一种原型聚类算法。在高斯混合聚类算法中涉及3个主要参数的更新,以下作简要介绍。高斯混合分布的密度函数如下,该分布共由个混合成分组成,每个混合成分对应一个高斯分布。上式中

分别为第

个高斯分布的均值向量与协方差矩阵,

为相应的“混合系数”,且满足

。原型聚类3.高斯混合聚类高斯混合聚类算法将输入样本假设为是由以上高斯混合分布密度生成的。若输入样本为

显然,样本

是由第

个个高斯分布生成,其先验概率为

,后验概率

可根据下式计算。原型聚类高斯混合聚类算法在迭代次数到达一定时,将按照后验概率的大小将样本点

划分入相应的簇中。根据极大似然原理,算法迭代过程中将不断更新高斯混合分布的密度函数的参数,更新为下式子。原型聚类更新为下式子。原型聚类根据以上高斯混合概率模型的更新规则,算法的基本过程如图所示。原型聚类算法的具体步骤如下。(1)输入样本集合、初始化高斯混合分布的模型参数。(2)计算每个样本点的后验概率。(3)更新每个多维正态分布的参数。(4)重复步骤(2)~(3),直至满足停止条件(通常为最大迭代次数)。(5)计算每个样本点的后验概率。(6)将每个样本点按照后验概率大小归类。(7)输出聚类结果。原型聚类基于密度的聚类算法简称密度聚类算法,该类算法假设聚类结果能够通过样本分布的紧密程度确定。其基本思想是:以样本点在空间分布上的稠密程度为依据进行聚类,若区域中的样本密度大于某个阈值,则把相应的样本点划入与之相近的簇中。具有噪声的基于密度聚类(Density-BasedSpatialClusteringofApplicationswithNoise,DBSCAN)是一种典型的密度聚类算法。该算法从样本密度的角度进行考察样本之间的可联接性,并由可联接样本不断扩展直到获得最终的聚类结果。密度聚类对于样本集

,给定距离参数

,数目参数

,任一样本点

,定义以下几个概念。(1)将集合

称为样本点的邻域,若

,则称

为一个核心对象。(2)若样本点

属于

邻域,且

为一个核心对象,则称

密度直达。(3)对于样本点

和,若存在样本点序列

,且

密度直达,则称

密度可达。(4)若存在样本点

,使得样本点

和均由

密度可达,称

密度相联。密度聚类如果取距离参数

,数目参数

,下图给出了以上概念的直观表示。密度聚类在上图中,对于当前参数而言,例如样本点

为核心对象,样本点

不是核心对象;

密度直达,并且

密度可达。基于以上关于样本点之间可联接性的定义,DBSCAN算法将簇

描述为满足以下两个条件的非空子集。(1),,则

密度相联。(2),由

密度可达,则

。密度聚类DBSCAN算法的基本过程,如图所示。密度聚类DBSCAN算法的具体步骤如下。(1)输入样本集合、初始化距离参数

,数目参数

。(2)确定核心对象集合。(3)在核心对象集合中,随机选择一个核心对象作为种子。(4)依据簇划分原则生成一个簇,并更新核心对象集合。(5)若核心对象集

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论