统计知识选讲(一)——主成分分析(PCA)的思想
主成分分析的主要目的是希望用较少的变量去解释原来资料中的大部分变异,将我们手中许多相关性很高的变量转化成彼此相互独立或不相关的变量,从而达到降维的目的。在原始数据“预处理”阶段通常要先对它们采用PCA的方法进行降维。本质上讲,PCA就是将高维的数据通过线性变换投影到低维空间上去,但并非随意投影,而是需要遵循一个规则:希望降维后的数据不能失真,也就是说被PCA降掉的那些维度只能是噪声或是冗余的数据。
噪声可以理解为样本数据各维度之间的相关性干扰,冗余可以理解为没有的维度(何为没用?我们PCA处理的基础是保持数据的可区分性,如果该维度上样本数据变异度很小,那么留它何用~~)。
以上是PCA的本质和基本思想。下面我们来具体分析。假设现在有很多个样本,每个样本都是多维的,他们自然都可以在多维坐标系上表示出来。现在我们第一步是要进行维度的变换,实际上就是通过旋转形成新的坐标系直线(此时还没有降维)。将各样本数据投影在这些直线上,其投影的长度是在新坐标系下的样本各维度值。通过计算各直线上投影的方差值,我们可以进行排序。方差值大说明这个新维度区分能力强,我们应该留下;反之则该去掉(降维去冗余)。
现在通过以上思想你应该可以推到出PCA的具体公式了。至于具体的公式,本讲决定直接跳过(留给下一讲),现在我可以直接告诉你大概运用什么样的方法怎样来进行PCA。完成PCA的关键是——协方差矩阵!!协方差矩阵度量的是维度与维度之间的关系,而非样本与样本之间,所以我们直接对协方差矩阵进行某种变化,是不是就可以到达降噪和去冗余的目的呢?
Absolutely!!这种变化就是矩阵的对角化(对角化实际上还没有降维,只是同维度的变换)。对角化之后非对角上的元素都是0,这就到达了去噪声的目的。而对角线上的元素是新维度的方差(你应该明白对角化的矩阵依然是协方差矩阵吧),所以我们只需要在这些方差中挑选较大的一些,舍去较小的,这样就去冗余了。通过这两步工作PCA最主要的工作就完成了。
统计知识选讲(一)——主成分分析(PCA)的思想的更多相关文章
- 统计知识选讲(二)——主成分分析(PCA)的推导和应用
1.数学推导 根据上讲的思想,我们可以用下图来进行数学上的推导. 2.PCA的步骤 1)对原始数据进行标准化处理:对该指标变量进行标准化, 2)计算相关系数矩阵(协方差矩阵) 3)计算相关系数矩阵的特 ...
- 线性判别分析(LDA), 主成分分析(PCA)及其推导【转】
前言: 如果学习分类算法,最好从线性的入手,线性分类器最简单的就是LDA,它可以看做是简化版的SVM,如果想理解SVM这种分类器,那理解LDA就是很有必要的了. 谈到LDA,就不得不谈谈PCA,PCA ...
- 机器学习 —— 基础整理(四)特征提取之线性方法:主成分分析PCA、独立成分分析ICA、线性判别分析LDA
本文简单整理了以下内容: (一)维数灾难 (二)特征提取--线性方法 1. 主成分分析PCA 2. 独立成分分析ICA 3. 线性判别分析LDA (一)维数灾难(Curse of dimensiona ...
- 主成分分析PCA详解
转载请声明出处:http://blog.csdn.net/zhongkelee/article/details/44064401 一.PCA简介 1. 相关背景 上完陈恩红老师的<机器学习与知识 ...
- 主成分分析(PCA)原理及推导
原文:http://blog.csdn.net/zhongkejingwang/article/details/42264479 什么是PCA? 在数据挖掘或者图像处理等领域经常会用到主成分分析,这样 ...
- 05-03 主成分分析(PCA)
目录 主成分分析(PCA) 一.维数灾难和降维 二.主成分分析学习目标 三.主成分分析详解 3.1 主成分分析两个条件 3.2 基于最近重构性推导PCA 3.2.1 主成分分析目标函数 3.2.2 主 ...
- 机器学习之主成分分析PCA原理笔记
1. 相关背景 在许多领域的研究与应用中,通常需要对含有多个变量的数据进行观测,收集大量数据后进行分析寻找规律.多变量大数据集无疑会为研究和应用提供丰富的信息,但是也在一定程度上增加了数据采集的 ...
- 主成分分析(PCA)原理详解_转载
一.PCA简介 1. 相关背景 在许多领域的研究与应用中,往往需要对反映事物的多个变量进行大量的观测,收集大量数据以便进行分析寻找规律.多变量大样本无疑会为研究和应用提供了丰富的信息,但也在一定程度上 ...
- 用scikit-learn学习主成分分析(PCA)
在主成分分析(PCA)原理总结中,我们对主成分分析(以下简称PCA)的原理做了总结,下面我们就总结下如何使用scikit-learn工具来进行PCA降维. 1. scikit-learn PCA类介绍 ...
随机推荐
- Net平台下的消息队列介绍
Net平台下的消息队列介绍 本系列主要记录最近学习消息队列的一些心得体会,打算形成一个系列文档.开篇主要介绍一下.Net平台下一些主流的消息队列框架. RabbitMQ:http:// ...
- nodejs开发aspnet5项目
结合nodejs开发aspnet5项目 1.安装kvm 官方教程地址:https://github.com/ligershark/Kulture 打开 powershell命令窗口,找不到可以在开 ...
- 模板专业化和模板偏特样片(template specialization and partial template specialization)
测试环境: win7 64 g++ 4.8.1 /*************************************************************************** ...
- Codeforces Round #FF 446A DZY Loves Sequences
预处理出每一个数字能够向后延伸多少,然后尝试将两段拼起来. C. DZY Loves Sequences time limit per test 1 second memory limit per t ...
- QT Creater与libusb使用
新建一个C项目,然后修改.pro文件,添加LIBS一行 TEMPLATE = app CONFIG += console CONFIG -= app_bundle CONFIG -= qt LIBS ...
- leetcode第12题--Integer to Roman
Problem: Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range ...
- 网易ios 面试
1 说说 你对 MRC和 ARC 的理解 2 对OC内存分析 有什么好的方法, 3 corePlot 4 pop 动画 5 cocoapods 6 GCD 7 瀑布流 及 uicollection ...
- C#可扩展编程之MEF
C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻 前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在 ...
- 用mysql dump 导入与导出的方法
用mysql dump 导入与导出的方法 分类: 数据库2009-12-08 00:04 6825人阅读 评论(0) 收藏 举报 mysql数据库deleteinsertinternetdatabas ...
- MVC4中使用Ninject
MVC4中使用Ninject 1.NuGet获取Ninject.dll .NET技术交流群 199281001 .欢迎加入. 2.全局注册 Global.asax.cs RegisterNinje ...