转自:https://yoyoyohamapi.gitbooks.io/mit-ml/content/%E7%89%B9%E5%BE%81%E9%99%8D%E7%BB%B4/articles/PCA.html

https://www.jianshu.com/p/162bb4ea1b7f

1.有什么功能?

进行数据降维,从n个特征里选出k个最具有代表性的,使数据损失降到最小,尽可能保有原来的数据特征。

假设需要从n维降到k维,那么需要找出k个n维向量,将原有的数据投影到k个n维向量构成的k维空间,并保证投影误差足够小。

比如下图,就找到了2个3维向量,构成了一个二维平面,可将3维特征进行投影。

2.算法的步骤

1.先进行标准化,使数据的差值不那么大:

//标准差你应该记得怎么算的吧,就是根号下的方差。

2.计算协方差矩阵Σ:

3.通过奇异值分解(SVD),求取 ΣΣ 的特征向量(eigenvectors):

4.从 U中取出前 k个左奇异向量,构成一个约减矩阵 UreduceUreduce:

5.计算新的特征向量:z(i):

 

//↑以上过程我都不明白,跟我看的另外一个教程不一样啊。

3.算法的步骤

转自:https://blog.csdn.net/huangfei711/article/details/78663474

PCA 操作流程

  1. 去平均值,即每一位特征减去各自的平均值(当然,为避免量纲以及数据数量级差异带来的影响,先标准化是必要的)
  2. 计算协方差矩阵
  3. 计算协方差矩阵的特征值与特征向量
  4. 对特征值从大到小排序
  5. 保留最大的个特征向量
  6. 将数据转换到个特征向量构建的新空间中

假设二维数据为 data:

取均值:

  • 去均值矩阵:

  • 计算其协方差矩阵:

  • 计算协方差矩阵的特征值和特征向量:

特征值为:

特征向量为:

  • 对特征值进行排序(只有两个特征)
  • 选择最大的特征值对应的特征向量:

转换到新的空间

这就完成了PCA的降维操作。

更深入的理解:2019-3-18更——

http://blog.codinglabs.org/articles/pca-tutorial.html

4.对以上的说明

2018-12-21更——

1.如何计算协方差矩阵?

有推导过程:

那么其实用第一个和最后一个得到的结果是一样的,实验如下:

> i<-c(,,,)
> j<-c(,,,)
> mean(i*j)-mean(i)*mean(j)
[] 94.875
> mean((i-mean(i))*(j-mean(j)))
[] 94.875

转自:https://wenku.baidu.com/view/e41e9f4cbed5b9f3f90f1c55.html

2.如何计算特征值?

2020-2-25更新——————————

https://www.jianshu.com/p/162bb4ea1b7f 这个讲的不错

#为什么我还要更新呢,因为我发现我对PCA的原理还并不了解,不怎么清楚,每次提到PCA我还是很模糊的。(我的理解就是在坐标系中,主成分代表的线和其他的都很近且平行之类的。)

它的原理就是将很多互相之间有相关的特征降维,使新的特征之间尽可能地不相关,用更少的特征来表示原来的信息。

比如每一个主成分如下:

是观测变量的线性组合。

选出的主成分就是和其他特征高度相关的新特征,这样才具有代表性。

https://towardsdatascience.com/pca-using-python-scikit-learn-e653f8989e60

这个是一个PCApython教程,我今天应该没有时间看,但是会学习的。

https://www.cnblogs.com/pinard/p/6239403.html 这个要看,因为有提到了一句,PCA是基于投影方差最大,我不理解。操,白看。但我目前还在看CCA,所以这个方面先不花太多时间了。

主成分分析PCA学习一条龙的更多相关文章

  1. 深度学习入门教程UFLDL学习实验笔记三:主成分分析PCA与白化whitening

    主成分分析与白化是在做深度学习训练时最常见的两种预处理的方法,主成分分析是一种我们用的很多的降维的一种手段,通过PCA降维,我们能够有效的降低数据的维度,加快运算速度.而白化就是为了使得每个特征能有同 ...

  2. 机器学习降维方法概括, LASSO参数缩减、主成分分析PCA、小波分析、线性判别LDA、拉普拉斯映射、深度学习SparseAutoEncoder、矩阵奇异值分解SVD、LLE局部线性嵌入、Isomap等距映射

    机器学习降维方法概括   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u014772862/article/details/52335970 最近 ...

  3. 线性判别分析(LDA), 主成分分析(PCA)及其推导【转】

    前言: 如果学习分类算法,最好从线性的入手,线性分类器最简单的就是LDA,它可以看做是简化版的SVM,如果想理解SVM这种分类器,那理解LDA就是很有必要的了. 谈到LDA,就不得不谈谈PCA,PCA ...

  4. 降维(一)----说说主成分分析(PCA)的源头

    降维(一)----说说主成分分析(PCA)的源头 降维系列: 降维(一)----说说主成分分析(PCA)的源头 降维(二)----Laplacian Eigenmaps --------------- ...

  5. 机器学习 —— 基础整理(四)特征提取之线性方法:主成分分析PCA、独立成分分析ICA、线性判别分析LDA

    本文简单整理了以下内容: (一)维数灾难 (二)特征提取--线性方法 1. 主成分分析PCA 2. 独立成分分析ICA 3. 线性判别分析LDA (一)维数灾难(Curse of dimensiona ...

  6. 机器学习课程-第8周-降维(Dimensionality Reduction)—主成分分析(PCA)

    1. 动机一:数据压缩 第二种类型的 无监督学习问题,称为 降维.有几个不同的的原因使你可能想要做降维.一是数据压缩,数据压缩不仅允许我们压缩数据,因而使用较少的计算机内存或磁盘空间,但它也让我们加快 ...

  7. PCA学习笔记

    主成分分析(Principal Component Analysis,简称PCA)是最常用过的一种降维方法 在引入PCA之前先提到了如何使用一个超平面对所有的样本进行恰当的表达? 即若存在这样的超平面 ...

  8. 05-03 主成分分析(PCA)

    目录 主成分分析(PCA) 一.维数灾难和降维 二.主成分分析学习目标 三.主成分分析详解 3.1 主成分分析两个条件 3.2 基于最近重构性推导PCA 3.2.1 主成分分析目标函数 3.2.2 主 ...

  9. 机器学习之主成分分析PCA原理笔记

    1.    相关背景 在许多领域的研究与应用中,通常需要对含有多个变量的数据进行观测,收集大量数据后进行分析寻找规律.多变量大数据集无疑会为研究和应用提供丰富的信息,但是也在一定程度上增加了数据采集的 ...

随机推荐

  1. 第二百七十四节,同源策略和跨域Ajax

    同源策略和跨域Ajax 什么是同源策略  尽管浏览器的安全措施多种多样,但是要想黑掉一个Web应用,只要在浏览器的多种安全措施中找到某种措施的一个漏洞或者绕过一种安全措施的方法即可.浏览器的各种保安措 ...

  2. 从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射

    从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Collection 接口又有 3 ...

  3. 文件 I/O 问题

    文件 I/O 问题:(1)对不存在的或者错误的文件进行操作吗?(2)文件以不正确的方式打开吗?(3)文件结束判断不正确吗?(4)没有正确地关闭文件吗? #include <iostream> ...

  4. 【BZOJ】1042: [HAOI2008]硬币购物(dp+容斥原理)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1042 一开始写了个O(nv)的背包,果断tle... 看了题解,,好神..用了组合数学中的多重集合方 ...

  5. hdu 1233 还是畅通project

    本题链接:点击打开链接 本题大意: 有n个村庄,n*(n-1)/2条路,输入每条路所连接是哪两个村庄及长度,求使全部村庄均连通(并不是都两两连通) 所铺公路的最短路程. 解题思路: 使用并查集基础及K ...

  6. HMCharacteristicType 承接homekit 外包开发 微信 ELink9988

    承接homekit 开发 微信 ELink9988 让HMCharacteristicTypePowerState:String配件的电源状态.该值是一个布尔值.让HMCharacteristicTy ...

  7. H&M

    H&M于1947年由Erling Persson在瑞典创立.如今,H&M在全世界1500 多个专卖店销售服装.配饰与化妆品.位于瑞典市Stora Gatan大街的老H&M店是世 ...

  8. int main(int argc, char *argv[])中的argc和argv

    argc 是 argument count的缩写,表示传入main函数的参数个数: argv 是 argument vector的缩写,表示传入main函数的参数序列或指针,并且第一个参数argv[0 ...

  9. hdu 4739(状态压缩)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4739 思路:状态压缩. #include<iostream> #include<cs ...

  10. IOS7开发~新UI学起(二)

    本文转载至 http://blog.csdn.net/lizhongfu2013/article/details/9133281 1.UINavigationBar: NSDictionary* at ...