机器学习及应用第9章-降维课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《机器学习及应用第9章-降维课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机器 学习 应用 课件
- 资源描述:
-
1、第09章 降维pk-近邻学习p主成分分析p低维嵌入pSVD分解9.1 引言n 降维(Dimensionality Reduction,DR)是指采用线性或者非线性的映射方法将高维空间的样本映射到低维空间中。n 降维获得低维空间下的数据等价表示,实现高维数据的可视化呈现。n 等价的低维数据更方便存储、处理、计算和使用。n 降维能够去除数据噪声、降低算法开销。n 降维还可应用于文本分类和数据压缩等领域。n 降维可以得到原始数据的简化表示以加速后续处理或者改进输出结果,因此它已经成为很多算法数据进行预处理的重要手段。9.1.1 降维的概念9.1 引言9.1 引言降维方法可分为线性降维和非线性降维两大
2、类。n 线性降维假设构成数据集的各变量间独立无关。主成分分析(Principal Component Analysis,PCA)独立成分分析(Independent Component Analysis,ICA)线性判别分析(Linear Discriminant Analysis,LDA)n 非线性降维方法,也称之为流形学习方法(Manifold Learning),其目标是从高维采样数据中恢复低维流形结构,不改变数据本身的拓扑特性。基于保持全局结构信息,如等距离映射算法ISOMAP 关注局部结构信息,如LLE、LE、HLLE9.1.2 常见算法分类9.2 k-近邻学习n k-近邻(k-Ne
3、arest Neighbor,kNN):给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的k个实例,即k个邻居。如果这k个实例的多数属于某个类,就把该输入实例分类到这个类中。9.2.1 算法实现n kNN算法计算流程如下:计算每个样本点与测试点的距离;排序后取距离值最小的k个样本点作为k-近邻;获取k-近邻的分类标签并计算各分类出现的次数;找出出现次数最多的分类,返回该值作为测试点的分类结果。9.2 k-近邻学习n 实例代码 9.2 k-近邻学习n 运行效果:左下角两个点属于B类用蓝色点标识,右上角两个点属于A类用红色标识。取k值为3时通过kNN算法计算,距离测试点(0.2
4、,0.1)最近的三个点中的两个点都是蓝色,因此测试点也是蓝色,属于B类。这样的实现方式适合样本数量和特征数量比较少的情况。n 假设样本数量为N、特征数量为M,该算法时间复杂度是 。n 面对大样本和特征数较多的情况,使用KD树、球树训练数据。n 以KD树为例,搜索时间复杂度为 ,适合于样本数量远大于特征数量的kNN搜索。()O NM(log()O MN9.2 k-近邻学习n sklearn.neighbors模块集成了k-近邻相关的类,KNeighborsClassifier用做kNN分类树,KNeighborsRegressor用做kNN回归树。KNeighborsClassifier类的实现
5、原型如下:9.2.2 算法实例class sklearn.neighbors.KNeighborsClassifier(n_neighbors=5,weights=uniform,algorithm=auto,leaf_size=30,p=2,metric=minkowski,metric_params=None,n_jobs=1,*kwargs):n 主要参数如下:n_neighbors:整型,默认参数值为5。邻居数k值。weights:字符串或回调函数,默认参数值为uniform。预测时的权重有:9.2 k-近邻学习uniform:所有近邻样本权重都一样;distance:权重和距离成反比
6、;callable,即回调函数:该函数的输入是距离数组,输出是同样大小的权重数组。algorithm:计算近邻的算法,包括如下四种:auto,根据传递给fit方法的参数值,尝试选择最优算法;ball_tree,球树实现(BallTree);kd-tree,KD树实现(KDTree);brute,暴力实现。leaf size:整型,默认参数值为30。定义构建KD树或球树时叶子结点数量的阈值。这个值会影响构建和查询的速度,以及树的存储空间。metric:字符串或回调函数,默认参数值为minkowski。给定树的距离度量方法。p:整型,默认参数值为2。定义闵可夫斯基距离中的p值。9.2 k-近邻学习
7、n 实例代码 9.2 k-近邻学习n 在这个例子中,使用鸢尾花iris数据集作为训练数据集,提取该数据集的前两个特征值以简化样本。首先创建近邻分类的实例并对数据进行拟合,同时绘制了分类的边界,将不同分类点以不同的颜色显示出来。最后将训练数据集中的数据用不同颜色的散点显示出来。9.2 k-近邻学习n kNN算法本身简单有效,能处理大规模的数据分类,尤其适用于样本分类边界不明显的情况。n 计算量较大且运行时需要大量内存:对每一个待分类数据都要计算它到全体已知样本的距离,才能求得它的k个最近邻点。n kNN算法的三个基本要素:(1)k值的选择:通过交叉验证的方式求出最合适的k值,默认取值为5。(2)
8、分类决策规则:通常采用多数表决决定。在类域间分布不平衡的情况下,采用为k个邻居分配不同权值的方法来改进。(3)距离度量方法。9.2.3 算法关键9.3 主成分分析n 通过某种线性投影,将高维的数据映射到低维的空间中表示,并期望在所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保留住较多的原数据点的特性。n PCA是丢失原始数据信息最少的一种线性降维方式,可以将PCA应用在数据压缩、数据可视化、提升机器学习速度等场景中。9.3.1 算法思想n PCA是将n维特征向量映射到r维上(),映射的过程要求每个维度的样本方差最大化,达到尽量使新的r维特征向量之间互不相关的目的。这些数据中拥有方差
9、最大的r个维度被称为主成分。n假设有样本数据集 ,每个样本有n个特征:。处理过程如下:rn12,.,mXx xx12,.,1iiiinxxxxim,9.3 主成分分析计算样本均值生成去中心化的样本,得到中心化矩阵:,其中 ,计算S的协方差矩阵:,即 使用SVD奇异值分解方法计算协方差矩阵的特征值和特征向量。调用方法:linalg.svd(),矩阵 中的特征值排序,选择其中最大的r个,将其对应特征向量作为 列向量组成降维矩阵 。将样本点投影到选取的特征向量 上,降维后的数据为:1212,mmSS SSx xx12n=,11mjijixm 1jn1TCOVmSS1Tmiii=1COVmS S,TS
10、VD COV U VnrU Un rU Um rm nn rZSU9.3 主成分分析n 我们使用贡献率来判断选择主成分的个数。贡献率贡献率是指选取的r个特征值总和占全部特征值总和的比重,一般应取85%以上。公式如下:9.3.2 算法实例11=riiniin scikit-learn提供了主成分分析相关的类sklearn.decomposition,其函数原型如下:class sklearn.decomposition.PCA(n_components=None,copy=True,whiten=False,svd_solver=auto,tol=0.0,iterated_power=auto,
11、random_state=None)9.3 主成分分析n 主要参数如下:n_components:整型,浮点型,None或者字符串。保留的主成分个数,亦即保留下来的特征个数n。copy:布尔值类型,默认参数值为False。若为True,将原始训练数据复制一份,算法运行后原始训练数据的值不会有任何改变;若为False,则在原始数据上进行降维计算,运行PCA算法后原始训练数据的值会改变。whiten:布尔值类型,默认参数值为False。白化,使得每个特征具有相同的方差。从转换后的信号中删除一些信息,提高下游估计值的预测精度。svd_solver:字符串。可以取值auto,full,arpark,或
12、randomized。n 以三维的球型数据集为原始数据对象,通过降维方法把它降成二维数据:9.3 主成分分析n 实例代码 9.3 主成分分析运行结果如下:n_components=2.000000主成分方差比例:0.98318212 0.00850037主成分方差:3.78483785 0.03272285n_components=0.950000主成分方差比例:0.98318212主成分方差:3.78483785n_components=0.990000主成分方差比例:0.98318212 0.00850037主成分方差:3.78483785 0.03272285n_components=m
13、le主成分方差比例:0.98318212主成分方差:3.78483785n首先使用scikit提供的make_blobs方法,在指定样本点数量、特征数量、中心点、范围等基础上生成三维球型数据;n当n_components=2时,将数据降维到二维,即保留2个主成分;n当n_components=0.95时,表示不直接指定降维的维度,而指定降维后的主成分方差占总方差值的比例为95%以上。此时只保留了1个主成分,其方差为3.78483785、方差占比98.3%。n当n_components=mle,与保留2个主成分的效果一致。9.3 主成分分析n 当n_components=0.99时,表示指定降维
14、后的主成分方差占总方差值的比例为99%以上。此时保留了2个主成分,其方差分别为3.78483785和0.3272285,方差占比为98.3%和0.85%,方差占比之和为99.2%。n 使用mplot3d实现三维数据可视化,并利用mplotlib将降维后的数据显示出来。对比两幅图可以很清楚地看到,PCA降维的过程保留了原始三维图中的4个聚类。9.4 低维嵌入n 传统的线性降维方法,如主成分分析PCA,在把高维数据映射到低维空间时通常不能保留原高维数据的内在非线性结构和特征。n 非线性的方法如LLE、hessian局部线性嵌入算法HLLE等应运而生。它们的优点是具有较少的参数需要设置,而且使用非迭
15、代方法求解从而可以避免陷入局部极小。9.4.1 算法原理n LLE算法基本思想是把整个非线性流形分为许多个小块,这些小块由各数据点与它的k个邻居点构成,每个小块可以看作是拥有局部线性结构的。每个数据点和它的k个邻居点的线性组合系数称为重构权重。LLE认为所有数据点降到低维后邻居关系不变,包括重构权重也不变。因此将小块数据线性降维后,再把它们拼接起来,即可构成高维数据的低维表示。9.4 低维嵌入9.4 低维嵌入9.4.2 算法实例n 流形学习库在sklearn.manifold包中。里面实现的流形学习算法包括:多维尺度变换(MDS)算法、等距映射(ISOMAP)算法、拉普拉斯特征映射(LE)算法
展开阅读全文