转自: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. 关于Unity的组件和作用

    一.Transform组件 整个场景由节点树组成. 节点+Transform组件,每个Transform有自己的孩子Transform,由Transform组成Transform树,而每个Transf ...

  2. TensorFlow基础笔记(0) 参考资源学习文档

    1 官方文档 https://www.tensorflow.org/api_docs/ 2 极客学院中文文档 http://www.tensorfly.cn/tfdoc/api_docs/python ...

  3. 怎么用ChemDraw连接两个结构片段

    作为最新版的ChemOffice 15.1的核心组件,ChemDraw几乎能解决所有平面化学结构中的绘制问题.如果用户想连接两个分开的结构片段,ChemDraw提供两种连接两个化学结构片段的方法,分别 ...

  4. iOS开发之--改变系统导航的颜色,字体,还有返回样式的自定义

    在写项目的工程中,我们可能会遇到各种各样的项目,写的方法也是各有不同,不喜欢自定义的小伙伴也很多, 下面我就记录下系统导航和barbuttonitem的修改系统空间的方法: 1,添加rightbarb ...

  5. Linux网络流量控制工具—Netem

    第一篇:概念篇 Netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块.该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽.传输延迟.丢包等等情况.使 ...

  6. IOS7开发~新UI学起(一)

    本文转载至:http://blog.csdn.net/lizhongfu2013/article/details/9124893 IOS7在UI方面发生了很大改变,所以感觉有必要重新审视的学习一下(新 ...

  7. tomcat下载与安装..使用和配置环境变量

    操作环境: xp, myEclipse6.5 tomcat6.0 正文: 一.下载 tomcat官方网站 http://tomcat.apache.org 在左边Download树形菜单中 点击最新版 ...

  8. 回车(CR)换行(LF)的来历及区别

    转自https://blog.csdn.net/lw370481/article/details/8229344 一.回车”(Carriage Return)和“换行”(Line Feed)起源 回车 ...

  9. Efficient data transfer through zero copy

    Efficient data transfer through zero copy https://www.ibm.com/developerworks/library/j-zerocopy/ Eff ...

  10. PHP 支持8种基本的数据类型。

    四种标量类型:boolean (布尔型):这是最简单的类型,只有两种取值,可以为 TRUE/true 或 FALSE/false ,不区分大小写.详细请查看:PHP布尔类型(boolean)integ ...