博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PCA学习总结
阅读量:35194 次
发布时间:2020-01-31

本文共 680 字,大约阅读时间需要 2 分钟。

1. PCA整体思想

PCA,Principle Componet Analysis,主成分分析,主要用于数据降维。它通过计算给定数据集的协方差矩阵的特征值和特征向量,来得到数据集最关键的方向(数据集在此方向的投影方差最大,这个能保持最多的信息),并从关键的方向中选取前k个构成k维空间,在此空间中重新表示原始数据以达到降维的目的。

2. 推导过程

3. 算法的基本步骤

输入:数据集X(DxN)

输出:特征值E(Dx1),特征向量V(DxD,特征向量按列存放),样本每一维的均值(Dx1)

过程:1. 计算X的协方差矩阵C

   2. 求C的特征值E和特征向量V,并按照特征值递减的顺序排列

   3. 选取V的前k个特征向量(即前K列),构成矩阵P(DxK)

   4. 将X的每个元素x在P的前K个特征向量上进行投影,得到xx(K,1),最终得到X在K个特征向量上的投影矩阵Z(KxN)

   5. 用Z重构XX,并与X比较,计算重构误差

4. matlab实现PCA

[V, E] = eig( cov(X') )[E index] = sort(diag(E),'descend');V = V(:,index);meanX = mean(X')';P=V(:,[1:K])[r,c] = size(X);Y = P'*(X-repmat(meanX,1,c));[r,c] = size(Y);XX = P * Y + repmat(meanX, 1, c);

5. PCA主要应用

人脸识别,手写识别中用的相对较多。

相当好的一份PCA介绍资料:

转载地址:http://ertnmu.baihongyu.com/

你可能感兴趣的文章
leetcode 热题 Hot 100-5. 二叉树的最大深度
查看>>
leetcode 热题 Hot 100-2. 有效的括号
查看>>
leetcode 热题 Hot 100-3. 合并两个有序链表
查看>>
leetcode 热题 Hot 100-4. 对称二叉树
查看>>
Leetcode C++《热题 Hot 100-12》226.翻转二叉树
查看>>
Leetcode C++《热题 Hot 100-13》234.回文链表
查看>>
Leetcode C++《热题 Hot 100-14》283.移动零
查看>>
Leetcode C++《热题 Hot 100-15》437.路径总和III
查看>>
Leetcode C++《热题 Hot 100-16》448.找到所有数组中消失的数字
查看>>
Leetcode C++《热题 Hot 100-17》461.汉明距离
查看>>
Leetcode C++《热题 Hot 100-18》538.把二叉搜索树转换为累加树
查看>>
Leetcode C++《热题 Hot 100-19》543.二叉树的直径
查看>>
Leetcode C++《热题 Hot 100-21》581.最短无序连续子数组
查看>>
Leetcode C++《热题 Hot 100-22》2.两数相加
查看>>
Leetcode C++《热题 Hot 100-23》3.无重复字符的最长子串
查看>>
Leetcode C++《热题 Hot 100-24》5.最长回文子串
查看>>
Leetcode C++《热题 Hot 100-26》15.三数之和
查看>>
Leetcode C++《热题 Hot 100-27》17.电话号码的字母组合
查看>>
Leetcode C++《热题 Hot 100-28》19.删除链表的倒数第N个节点
查看>>
Leetcode C++《热题 Hot 100-29》22.括号生成
查看>>