机器学习11主成分分析

降维(Dimensionality Reduction) :

一、 降维目的:

目的一:数据压缩(Data Compression)

目的二:数据可视化(Visualization)

二、 主成分分析(PCA)

主成分分析问题的描述:

算法: 

选择主成分的数量,即k值:

压缩后的复原:

三、 错误的应用场景:


 

降维(Dimensionality Reduction) :

 

一、 降维目的:

目的一:数据压缩(Data Compression)

数据压缩不仅可以节省内存或磁盘,还可以加快学习算法。  

可以把任何维度的数据降到任何想要的维度, 例如将 1000 维的特征降至 100 维。

 

目的二:数据可视化(Visualization)

50 维的数据不能可视化,但将其降至 2 维,便可以将其可视化。

这样做的问题在于,降维算法只负责减少维数,新特征的意义必须由我们自己去发现了。 


二、 主成分分析(PCA)

主成分分析(PCA)是最常见的降维算法。 
在 PCA 中,要做的是找到一个方向向量(Vector direction),当把所有的数据都投射到该向量上时,希望投射平均均方误差能尽可能地小。方向向量是一个经过原点的向量,而投射误差是从特征向量向该方向向量作垂线的长度。

 

主成分分析问题的描述:

将 n 维数据降至 k 维,目标是找到向量 u(1),u(2),...,u(k)使得总的投射误差最小。

 

PCA 将 n 个特征降维到 k 个, 可以用来进行数据压缩, 如果 100 维的向量最后可以用 10维来表示,那么压缩率为 90%。

同样图像处理领域的 KL 变换使用 PCA 做图像压缩。但 PCA 要保证降维后,数据的特性损失最小。

 

PCA 技术的一大好处是对数据进行降维处理。我们可以对新求出的“主元” 向量的重要性进行排序,根据需要取前面最重要的部分,将后面的维数省去,可以达到简化模型或是数据压缩的效果。同时最大程度的保持了原有数据的信息。

 
PCA 技术的一个很大的优点是,它是完全无参数限制的。在 PCA 的计算过程中完全不需要人为设定参数或是根据任何经验对计算进行干预, 最后的结果只与数据相关, 对用户是独立的。 


但是,这也可以看作是缺点。如果用户对观测对象有一定的先验知识,掌握了数据的一些特征, 却无法通过参数化等方法对处理过程进行干预, 可能会得不到预期的效果。

 

 

算法: 

1、均值归一化; 

2、 计算矩阵X^{T}X

3、计算矩阵 X^{T}X 的特征值和特征向量;

4、根据特征值排序,选出前k个对应的特征向量。

5、将每个样例和k个特征向量做內积,即得到降维后的k个特征。

 

 

选择主成分的数量,即k值:

 

压缩后的复原:

 PCA 作为压缩算法,可能需要把 1000 维的数据压缩 100 维特征,或具有三维数据压缩到一二维表示。

所以,如果这是一个压缩算法,应该能回到这个压缩表示,回到你原有的高维数据的一种近似。

这是一个漂亮的与原始数据相当相似。所以,这就是从低维表示 Z 回到未压缩的时表示。

我们得到数据的一个近似的原始数据 X,也把这个过程称为重建原始数据


三、 错误的应用场景:

错误一: 将其用于减少过拟合(减少特征的数量)。这样做非常不好,不如尝试归一化处理。原因在于主要成分分析只是近似地丢弃掉一些特征, 它并不考虑任何与结果变量有关的信息, 因此可能会丢失非常重要的特征。而归一化处理会考虑到结果变量,不会丢掉重要的数据。 

错误二:默认地将主要成分分析作为学习过程中的一部分,这虽然很多时候有效果,最好还是从所有原始特征开始,只在有必要的时候(算法运行太慢或者占用太多内存)才考虑采用主成分分析。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/387248.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用Apriori进行关联分析(一)

使用Apriori进行关联分析(一)大型超市有海量交易数据,我们可以通过聚类算法寻找购买相似物品的人群,从而为特定人群提供更具个性化的服务。但是对于超市来讲,更有价值的是如何找出商品的隐藏关联,从而打包促…

主成分分析法 (PCA) 用于数据可视化实验 -- Matlab版

第一步:下载数据集。 https://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/multiclass.html#pendigits 第二步:改变数据格式。 注:此数据集的各特征值均为像素,即属于同一量纲,故无需归一化步骤。 原格式为&a…

机器学习12推荐系统

推荐系统(Recommender Systems) 推荐系统根据浏览用户过去买过什么书,或过去评价过什么电影来判断并推荐新产品给用户。 这些系统会为像亚马逊和网飞这样的公司带来很大一部分收入。 因此,对推荐系统性能的改善,将对这些企业的有实质性和…

使用Apriori进行关联分析(二)

使用Apriori进行关联分析(二)书接上文(使用Apriori进行关联分析(一)),介绍如何挖掘关联规则。发现关联规则我们的目标是通过频繁项集挖掘到隐藏的关联规则。所谓关联规则,指通过某个…

数学笔记3——导数3(隐函数的导数)

数学笔记3——导数3(隐函数的导数)幂函数的扩展形式f(x) xn的导数:f’(x) nxn-1,n是整数,该公式对f(x) xm/n, m,n 是整数同样适用。推导过程:什么是隐函数引自知乎:“如果方程F(x,y)0能确定y…

机器学习13大规模数据集

大型数据集的学习(Learning With Large Datasets) 如果我们有一个低方差的模型, 增加数据集的规模可以帮助你获得更好的结果。 我们应该怎样应对一个有 100 万条记录的训练集? 以线性回归模型为例,每一次梯度下降…

Java07多线程

14 多线程 操作系统的多任务(multitasking):在同一时刻运行多个程序的能力。 多线程在较低的层次上扩展了多任务的概念:一个程序同时执行多个任务。 通常,每一个任务称为一个线程(tread)&…

MySQL字段拼接Concat

有时候,从数据库中拿出的数据并不是我们想要的格式,比如,有以下的vendors表 如果,想以 name (location)的格式展现出来,那么就要用到MySQL的Concat了。 Concat()拼接串,即把多个串连接起来形成一个较长的串…

使用pycharm调用模块后字体变灰 是什么原因呢?

使用pycharm调用模块后字体变灰 是什么原因呢?点击小灯泡提示出现以下内容:This inspection detects names that should resolve but dont. Due to dynamic dispatch and duck typing, this is possible in a limited but useful number of cases. Top-l…

操作系统01概述

第一章 概论 《Operating System Internals and Design Principles》 《Applied Operating System Concepts》 操作系统——裸机上的第一层软件,它是对硬件系统功能的首次扩充,填补人与机器之间的鸿沟。 1.1 操作系统与计算机同在 1.2 对操作系统的…

Linux re

正则表达式并不是一个工具程序,而是一个字符串处理的标准依据,如果想要以正则表达式的方式处理字符串,就得使用支持正则表达式的工具,例如grep、vi、sed、asw等。 注意:ls不支持正则表达式。 grep 正则表达式: 注意gr…

操作系统02进程管理Process_Description_and_Control

作业的基本概念:用户再一次计算过程中或一次事务处理过程中,要求计算机系统所做的工作的集合。 包含多个程序、多个数据、作业控制说明书 系统调用时操作系统提供给编程人员的唯一接口。 1、文件操作类; 2、进程控制类; 3、资…

蓝桥杯 方格填数(全排列+图形补齐)

方格填数 如下的10个格子 填入0~9的数字,同一数字不能重复填。要求:连续的两个数字不能相邻。(左右、上下、对角都算相邻) 一共有多少种可能的填数方案? 请填写表示方案数目的整数。注意:你提交的应该是一个…

操作系统03进程管理Process_Scheduling

2 Process Scheduling >Type of scheduling >Scheduling Criteria (准则) >Scheduling Algorithm >Real-Time Scheduling (嵌入式系统) 2.1 Learning Objectives By the end of this lecture you should be able to Explain what is Response Time 响应时间-…

skimage库需要依赖 numpy+mkl 和scipy

skimage库需要依赖 numpymkl 和scipy1、打开运行,输入cmd回车,输入python回车,查看python版本2、在https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy 中,根据自己python版本下载需要的包 (因为我的是python 2.7.13 …

操作系统04进程同步与通信

4.1 进程间的相互作用 4.1.1 进程间的联系资源共享关系相互合作关系临界资源应互斥访问。临界区:不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它们进行访问。把在每个进程中访问临界资源的那段代码称为临界资源区。显然&#x…

oracle迁移到greenplum的方案

oracle数据库是一种关系型数据库管理系统,在数据库领域一直处于领先的地位,适合于大型项目的开发;银行、电信、电商、金融等各领域都大量使用Oracle数据库。 greenplum是一款开源的分布式数据库存储解决方案,主要关注数据仓库和BI…

CNN框架的搭建及各个参数的调节

本文代码下载地址:我的github本文主要讲解将CNN应用于人脸识别的流程,程序基于PythonnumpytheanoPIL开发,采用类似LeNet5的CNN模型,应用于olivettifaces人脸数据库,实现人脸识别的功能,模型的误差降到了5%以…

操作系统05死锁

进程管理4--Deadlock and Starvation Concurrency: Deadlock and Starvation 内容提要 >产生死锁与饥饿的原因 >解决死锁的方法 >死锁/同步的经典问题:哲学家进餐问题 Deadlock 系统的一种随机性错误 Permanent blocking of a set of processes that eith…

CNN tensorflow 人脸识别

数据材料这是一个小型的人脸数据库,一共有40个人,每个人有10张照片作为样本数据。这些图片都是黑白照片,意味着这些图片都只有灰度0-255,没有rgb三通道。于是我们需要对这张大图片切分成一个个的小脸。整张图片大小是1190 942&am…