数据降维

PCA降维及SVD

荒凉一梦 提交于 2019-12-23 12:37:36
PCA降维 1.相关背景 我们在实际工作中经常需要分析不同组呈现来的成千上百个指标的数据,这些指标之间经常有一些相关性指标,比如厘米和英尺,这样的指标我们只要保留一个就可以,还有一些隐藏的高度相关的特征,以通过降维方法来进行数据预处理。 2. 数据降维 主成分分析(Principal Component Analysis,简称PCA)是一种常用的降维方法,属于无监督学习。所谓降维就是将数据指标从高维度减到低维度,因为低维度的数据有如下优点: 1) 更容易进行数据分析和数据可视化 2)更容易进行数据存储 3)降低算法的运行成本 3.PCA原理 样本点分布在正交属性空间中,我们如何找到一个超平面(直线的高维推广)对所有样本点最合适的表达? 1.最近重构性:样本点到这个超平面的距离足够近(类似线性回归) 2.最大可分性:样本点到这个超平面的投影尽可能分开(方差最大化) 以上两种方式得到的主成分分析的推导是等价的,下面从”最大可分析“进行推导PCA的过程。 3.1 向量的表示及基变换 3.1.1 向量的內积 a ⃗ ⋅ b ⃗ = ∣ a ⃗ ∣ ∣ b ⃗ ∣ c o s α ( α 为 两 个 向 量 的 夹 角 ) \vec a\cdot\vec b = |\vec a||\vec b|cos\alpha(\alpha为两个向量的夹角) a ⋅ b = ∣ a ∣ ∣ b ∣ c o

OpenCV中PCA实现人脸降维

北城以北 提交于 2019-12-20 20:38:37
   前言:   PCA 是大家经常用来减少数据集的维数,同时保留数据集中对方差贡献最大的特征来达到简化数据集的目的。本文通过使用 PCA 来提取人脸中的特征脸这个例子,来熟悉下在 oepncv 中怎样使用 PCA 这个类。    开发环境: ubuntu12.04+Qt4.8.2+QtCreator2.5.1+opencv2.4.2    PCA 数学理论:    关于 PCA 的理论,资料很多,公式也一大把,本人功底有限,理论方面这里就不列出了。下面主要从应用的角度大概来讲讲具体怎么实现数据集的降维。 把原始数据中每个样本用一个向量表示,然后把所有样本组合起来构成一个矩阵。当然了,为了避免样本的单位的影响,样本集需要标准化。 求该矩阵的协防差矩阵(关于协方差的介绍可以参考我的博文: 一些知识点的初步理解 _4( 协方差矩阵 ,ing...) )。 求步骤 2 中得到的协方差矩阵的特征值和特征向量。 将求出的特征向量按照特征值的大小进行组合形成一个映射矩阵,并根据指定的 PCA 保留的特征个数取出映射矩阵的前 n 行或者前 n 列作为最终的映射矩阵。 用步骤 4 的映射矩阵对原始数据进行映射,达到数据降维的目的。    实验说明:    在本次实验实现的过程中,需要用到 opencv 的这些函数,下面简单介绍下这些函数。    Mat Mat:: reshape (int cn,

MATLAB数据降维工具箱drtoolbox介绍

左心房为你撑大大i 提交于 2019-12-20 10:10:24
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.MATLAB drtoolbox介绍 The Matlab Toolbox for Dimensionality Reduction contains Matlab implementations of 38 techniques for dimensionality reduction and metric learning. 官方网站: http://homepage.tudelft.nl/19j49/Matlab_Toolbox_for_Dimensionality_Reduction.html This Matlab toolbox implements 32 techniques for dimensionality reduction. These techniques are all available through the COMPUTE_MAPPING function or trhough the GUI. The following techniques are available: - Principal Component Analysis ('PCA') - Linear Discriminant Analysis ('LDA') - Multidimensional

吴恩达机器学习视频笔记——8

孤街醉人 提交于 2019-12-11 15:28:28
10、支持向量机 10.1、大边界的直观理解 支持向量机 ( Support VectorMachine ) ,在学习复杂的非线性方程时提供了一种更为清晰,更加强大的方式。 10.2、核函数 10.3、应用SVM 11、聚类 11.1、无监督机器学习 11.2、K-Means(K均值算法) 11.3优化目标 11.4、随机初始化 11.5、选择聚类数 12、降维 12.1、动机一:数据压缩 12.2、动机二:数据可视化 12.3、主成分分析问题 12.4、主成分分析算法 12.5、选择主成分的数量 12.6、重建的压缩表示 12.7、主成分分析法的应用建议 本博客主要引用文章如下: 作者:黄海广 链接:斯坦福大学2014机器学习教程个人笔记(V5.4) 来源:PDF 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 来源: https://www.cnblogs.com/AlexWangle-one/p/12022673.html

主成分分析(PCA)原理详解

我的未来我决定 提交于 2019-12-10 10:07:52
个人分类: 机器学习与Python 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhongkelee/article/details/44064401 转载请声明出处: http://blog.csdn.net/zhongkelee/article/details/44064401 一、PCA简介 1. 相关背景 上完陈恩红老师的《机器学习与知识发现》和季海波老师的《矩阵代数》两门课之后,颇有体会。最近在做主成分分析和奇异值分解方面的项目,所以记录一下心得体会。 在许多领域的研究与应用中,往往需要对反映事物的多个变量进行大量的观测,收集大量数据以便进行分析寻找规律。多变量大样本无疑会为研究和应用提供了丰富的信息,但也在一定程度上增加了数据采集的工作量,更重要的是在多数情况下,许多变量之间可能存在相关性,从而增加了问题分析的复杂性,同时对分析带来不便。如果分别对每个指标进行分析,分析往往是孤立的,而不是综合的。盲目减少指标会损失很多信息,容易产生错误的结论。 因此需要找到一个合理的方法,在减少需要分析的指标同时,尽量减少原指标包含信息的损失,以达到对所收集数据进行全面分析的目的。由于各变量间存在一定的相关关系,因此有可能用较少的综合指标分别综合存在于各变量中的各类信息。主成分分析与因子分析就属于这类降维的方法。 2. 问题描述

机器学习(十)数据降维(PCA与LDA)

会有一股神秘感。 提交于 2019-12-10 08:29:16
机器学习(十) 数据降维(此处讲PCA与LDA) 背景: 在许多领域的研究与应用中,通常需要对含有多个变量的数据进行观测,收集大量数据后进行分析寻找规律。多变量大数据集无疑会为研究和应用提供丰富的信息,但是也在一定程度上增加了数据采集的工作量。更重要的是在很多情形下,许多变量之间可能存在相关性,从而增加了问题分析的复杂性。如果分别对每个指标进行分析,分析往往是孤立的,不能完全利用数据中的信息,因此盲目减少指标会损失很多有用的信息,从而产生错误的结论。 因此需要找到一种合理的方法,在减少需要分析的指标同时,尽量减少原指标包含信息的损失,以达到对所收集数据进行全面分析的目的。由于各变量之间存在一定的相关关系,因此可以考虑将关系紧密的变量变成尽可能少的新变量,使这些新变量是两两不相关的,那么就可以用较少的综合指标分别代表存在于各个变量中的各类信息。主成分分析与因子分析就属于这类降维算法。 简介: 降维就是一种对高维度特征数据预处理方法。降维是将高维度的数据保留下最重要的一些特征,去除噪声和不重要的特征,从而实现提升数据处理速度的目的。在实际的生产和应用中,降维在一定的信息损失范围内,可以为我们节省大量的时间和成本。降维也成为应用非常广泛的数据预处理方法。 降维具有如下一些优点: 使得数据集更易使用。 降低算法的计算开销。 去除噪声。 使得结果容易理解。 PCA PCA概念: PCA

主成分分析(PCA)原理总结

穿精又带淫゛_ 提交于 2019-12-10 04:13:48
    主成分分析(Principal components analysis,以下简称PCA)是最重要的降维方法之一。在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用。一般我们提到降维最容易想到的算法就是PCA,下面我们就对PCA的原理做一个总结。 1. PCA的思想     PCA顾名思义,就是找出数据里最主要的方面,用数据里最主要的方面来代替原始数据。具体的,假如我们的数据集是n维的,共有m个数据$(x^{(1)},x^{(2)},...,x^{(m)})$。我们希望将这m个数据的维度从n维降到n'维,希望这m个n'维的数据集尽可能的代表原始数据集。我们知道数据从n维降到n'维肯定会有损失,但是我们希望损失尽可能的小。那么如何让这n'维的数据尽可能表示原来的数据呢?     我们先看看最简单的情况,也就是n=2,n'=1,也就是将数据从二维降维到一维。数据如下图。我们希望找到某一个维度方向,它可以代表这两个维度的数据。图中列了两个向量方向,$u_1$和$u_2$,那么哪个向量可以更好的代表原始数据集呢?从直观上也可以看出,$u_1$比$u_2$好。     为什么$u_1$比$u_2$好呢?可以有两种解释,第一种解释是样本点到这个直线的距离足够近,第二种解释是样本点在这个直线上的投影能尽可能的分开。     假如我们把n'从1维推广到任意维,则我们的希望降维的标准为

聚类和降维

纵然是瞬间 提交于 2019-12-09 23:52:28
1.何为聚类 聚类是用于寻找数据内在的分布结构。既可以作为一个单独的过程,如异常检测等;也可作为分类等其他学习任务的前驱过程。聚类是标准的无监督学习。 在一些推荐系统中需要确定新用户的类型,但“用户类型”这个概念可能无法精确定义,此时往往会先对原有的用户数据进行聚类。然后根据聚类的结果将每个簇定义为一个类。然后在基于这些类别取进行相应的分类训练,以判断新用户的类型。 2.何为降维 降维主要是为了缓解维数灾难的一个重要方法。 主要是通过数学变换将原始的高维属性转变到一个低维的子空间。虽然人们平时观测到的数据基本都是高维的,但实际上真正与学习任务的分布相关的往往是低纬度的分布。所以,一般可以通过最主要的几个特征维度就可以实现对数据的描述。如kaggle上的泰坦尼克号生还问题。其主要是通过给定一个人的许多描述特征如年龄、姓名、性别和票价等来判断其是否能在海滩中生还。这就需要先进行特征筛选,从而找出主要的特征,让学校到的模型有更好地泛化性。 3.异同 (1) 聚类和降维都可以作为分类等问题的预处理步骤。 (2) 但他们虽然都可以实现对数据的约减,但二者使用情况不同。聚类针对的是数据点,而降维针对的是数据的特征。 聚类常见的有k-means,层次聚类,基于密度的聚类等;降维中常见的有PCA、Isomap、LLE等。 本文摘自“深度学习500问”。 来源: CSDN 作者: 不爱学习的笨蛋

机器学习中的特征——特征选择的方法以及注意点(转)

旧巷老猫 提交于 2019-12-07 19:43:08
转自 https://blog.csdn.net/google19890102/article/details/40019271 一、特征选择和降维 1、相同点和不同点 特征选择和降维有着些许的相似点,这两者达到的效果是一样的,就是试图去减少特征数据集中的属性(或者称为特征)的数目;但是两者所采用的方式方法却不同:降维的方法主要是通过属性间的关系,如组合不同的属性得新的属性,这样就改变了原来的特征空间;而特征选择的方法是从原始特征数据集中选择出子集,是一种包含的关系,没有更改原始的特征空间。 2、降维的主要方法 Principal Component Analysis(主成分分析),详细见“ 简单易学的机器学习算法——主成分分析(PCA) ” Singular Value Decomposition(奇异值分解),详细见“ 简单易学的机器学习算法——SVD奇异值分解 ” Sammon's Mapping(Sammon映射) 二、特征选择的目标 引用自吴军《数学之美》上的一句话:一个正确的数学模型应当在形式上是简单的。构造机器学习的模型的目的是希望能够从原始的特征数据集中学习出问题的结构与问题的本质,当然此时的挑选出的特征就应该能够对问题有更好的解释,所以特征选择的目标大致如下: 提高预测的准确性 构造更快,消耗更低的预测模型 能够对模型有更好的理解和解释 三、特征选择的方法

PCA(主成分分析)方法浅析

自闭症网瘾萝莉.ら 提交于 2019-12-06 05:23:45
PCA(主成分分析)方法浅析 降维、数据压缩 找到数据中最重要的方向:方差最大的方向,也就是样本间差距最显著的方向 在与第一个正交的超平面上找最合适的第二个方向 PCA算法流程 上图第一步描述不正确,应该是去中心化,而不是中心化 具体来说,投影这一环节就是:将与特征值对应的k个特征向量分别作为行向量组成特征向量矩阵P 直接乘以特征变量就好。原来是二维数据,降维之后只有一维。 我们想保留几个维度的特征,就留下几个特征值和对应的特征向量。 来源: https://www.cnblogs.com/jiading/p/11963861.html