主成分分析(PCA)原理及过程
首先,感谢一下这篇文章的作者:主成分分析原理及过程
PCA原理及过程
在机器学习中,对于数据维度过多问题,提出了一种降维算法叫做PCA算法。具体的降维:例如评估一个国家的GDP水平,需要考量到人口、收入、人均工资等等成千上万个因素。这每一个因素,我们叫做一个feature。如果feature过多,对于我们编写机器学习算法会有很大影响。而feature过多就是我们所说的维度灾难,为了解决这一问题,就提出了众多的降维算法,而今天所说的PCA只是其中一种。降维就是将原本过多的feature,映射到数量更少的feature组成的空间。当然了,映射也是随意映射就可以。需要按照一定的方法来进行数据的降维,下面就是PCA的主要过程:
在说算法流程之前需要知道协方差的概念,cov(X,Y)表示的意思就是X和Y的相关性,可以想象当cov(X,Y)为0时,就表示这两个X,Y之间不相关,对于我们的降维来说就是这两个维度要留下。
其次是样本的方差概念,方差表示的是维度的差异性大小,对于降维来说要选取差异大的,也就是方差大的。
- 协方差矩阵
Cij=cov(Xi,Xj)C_ij=cov(X_i,X_j)Cij=cov(Xi,Xj)
首先求出来,上述的协方差矩阵。可以知道协方差矩阵对角线上的元素为对应维度的方差。 - 求其特征值和与其对应的特征向量
我们需要使除了对角线之外的元素全为0,因此需要对协方差矩阵进行对角化操作,利用线性代数的知识求出该协方差矩阵的特征值和特征向量,对角化后,对角线上全为特征值,我们可以使用对角化后的对角矩阵和对应的特征向量对原数据进行操作。 - 选取前K个最大特征值对应的特征向量作为新的维度空间
对角化后的对角线上的元素就是协方差矩阵的特征值,同时这些值也表示这方差,因为要选取方差最大的,所以选取特征值大的K个对应的特征向量作为新的维度空间。 - 将原有数据映射到新的维度空间
将原数据映射到新的维度空间,就是将原有数据与新选出的特征向量组成的矩阵相乘,得到原有数据在新的空间中每个维度上的投影分量。
下面使用一个例子来演示一下映射过程:
如上图,在XOY坐标系中有两个向量OA和OB且他们的模长都为1
OA=(cosθ,sinθ)andOB=(cos(θ+α),sin(θ+α))OA=(cos\theta,sin\theta) and OB=(cos(\theta+\alpha),sin(\theta+\alpha))OA=(cosθ,sinθ)andOB=(cos(θ+α),sin(θ+α))
现将OA,OB转换到X’OY’坐标系中,新坐标轴的单位向量为:
OX′=(cosθ,sinθ)andOY′=(−sin(θ),cos(θ))OX'=(cos\theta,sin\theta) and OY'=(-sin(\theta),cos(\theta))OX′=(cosθ,sinθ)andOY′=(−sin(θ),cos(θ))
所以将原有的坐标与每一个新的坐标轴做内积即可得到该向量在新的坐标轴上的坐标,即:
OA′=(OA∗OX′T,OA∗OY′T)=(1,0)OA' = (OA*OX'^T,OA*OY'^T)=(1,0)OA′=(OA∗OX′T,OA∗OY′T)=(1,0)
OB′=(OB∗OX′T,OB∗OY′T)OB' = (OB*OX'^T,OB*OY'^T)OB′=(OB∗OX′T,OB∗OY′T)
为了快速计算,通常写成矩阵的形式:
[OA′OB′]=[OAOB][OX′TOY′T]\begin{bmatrix} OA' \\OB' \\ \end{bmatrix} =\begin{bmatrix} OA \\OB \\ \end{bmatrix}\begin{bmatrix} OX'^T & OY'^T \\ \end{bmatrix} [OA′OB′]=[OAOB][OX′TOY′T]
主成分分析(PCA)原理及过程相关推荐
- 主成分分析(PCA)原理分析Python实现
目录 1 引言 2 PCA的意义 3 PCA的实现步骤 4 弄懂PCA要回答的问题 5 PCA原理 5.1 如何降维? 5.2 如何量化投影以后样本点之间的区分度? 5.3 求取k维坐标系 5.3.1 ...
- 主成分分析(PCA)原理及推导
转载请声明出处http://blog.csdn.net/zhongkejingwang/article/details/42264479 什么是PCA? 在数据挖掘或者图像处理等领域经常会用到主成分分 ...
- 清风数学建模学习笔记——主成分分析(PCA)原理详解及案例分析
主成分分析 本文将介绍主成分分析(PCA),主成分分析是一种降维算法,它能将多个指标转换为少数几个主成分,这些主成分是原始变量的线性组合,且彼此之间互不相关,其能反映出原始数据的大部分信息. 一般 ...
- 主成分分析(PCA)原理及R语言实现及分析实例
主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量称为主成分.最近我们被客户要求撰写关于主成分分析(PCA)的研究报告,包括一些图形和统计输出.例如,使 ...
- 基于特征向量的主成分分析(PCA)原理解释
引子 首先看一下如何对一维向量的进行分解,我们知道,一个 nnn 维向量 aaa 可以由 nnn 个正交向量线性 vi,i=1,2,...,nv_i,i=1,2,...,nvi,i=1,2,..., ...
- pca主成分分析结果解释_主成分分析(PCA)原理精讲 | 统计学专题
引言:当数据维度较高时,我们很难通过普通的方法做图,更不能分析样本间的关系.故我们接下来学习降维度.可视化的主成分分析(Principal Component Analysis,PCA). 1.何时使 ...
- 主成分分析(PCA)原理详解_转载
一.PCA简介 1. 相关背景 在许多领域的研究与应用中,往往需要对反映事物的多个变量进行大量的观测,收集大量数据以便进行分析寻找规律.多变量大样本无疑会为研究和应用提供了丰富的信息,但也在一定程度上 ...
- 主成分分析计算机如何实现,主成分分析(PCA)原理及R语言实现及分析实例
评价美国法官评分中要保留的主成分个数.碎石图(直线与x符号).特征值大于1准则(水平线)和100次模拟的平行分析(虚线)都表明保留一个主成分即可 可以看出只有左上交Component Number为1 ...
- 机器学习-降维之主成分分析PCA算法原理及实战
主成分分析 前言 近年来,随着互联网和信息行业的发展,数据已经渗透到各行各业,成为重要的生产因素如数据记录和属性规模的急剧增长.社会已经进入大数据时代,数据越多越好似乎已经成为公理.然而,数据量并不是 ...
最新文章
- Linux下配置SNMP
- 【震惊】漱口水居然增加糖尿病,高血压发病率
- lnmp 切换mysql 版本_LNMP1.5:php多版本切换
- git锁和钩子以及图形化界面
- 008_tracker.conf配置详情
- 统计输入字符串中英文单词的个数
- TCP拥塞状态机的实现(中)
- postgresql 查看page, index, tuple 详细信息
- Mybatis 插入时获取主键的方式
- 为什么前端工程师薪资越来越高?
- Windows系统创建符号链接文件
- linux终端下载notepad,在Linux系统上安装NotePad++的三种方法介绍
- 秀恩爱分得快-模拟题
- 屏蔽Codeforces做题时的Problem tags提示
- Android网易歌词json接口,网易云音乐api分析
- 我的精神家园——陈皓(@左耳朵耗子)专访
- 那些年,我们一起踩过的 “Android 坑”
- 当刷机工具遇到SetupConnection时的解决方法
- 新年第一天 | 恶补新一季《黑镜》的同时,营长又深入扒了扒它那擅长机器学习的新爸爸是如何赚钱的
- 计算机毕业设计Android安卓旅游结伴景点评论-酒店预订系统app用户相约伴一起游玩
热门文章
- ubuntu服务器怎么共享文件,Ubuntu怎么创建共享文件夹支持Windows访问?
- Android4.×耳机插拔检测
- linux系统加多个网卡,在linux下教你将多个网卡设置为虚拟网卡
- 买房四部曲之纪念自己人生中第一次买房
- 【计算理论与算法分析设计】 4. 套圈 (HDU-1007)
- 12 大 AI App 技术创意,教你如何在 2020 年赚到钱!
- android俄语资源目录,Liveclasses Yan Bazhenov产品主题目录拍摄拍摄专业产品中文字幕...
- Vue二级目录部署多环境打包部署(二)
- Spark-sql arraystruct中 struct字段截取(spark2.4版本以上)
- 数字图像处理 图像对比度增强算法概览