PCA例题

已知样本集合的协方差矩阵为

C x = 1 10 [ 3 1 1 1 3 − 1 1 − 1 3 ] {\bm C}_x = \frac{1}{10} \begin{bmatrix} 3 & 1 & 1 \\ 1 & 3 & -1 \\ 1 & -1 & 3 \end{bmatrix} Cx=101 31113−11−13

使用PCA方法将样本向量降到二维 。


求解

计算 C x {\bm C}_x Cx的特征值得到:

λ 1 = 0.1 , λ 2 = λ 3 = 0.4 \lambda_1 = 0.1, \quad \lambda_2 = \lambda_3 = 0.4 λ1=0.1,λ2=λ3=0.4

其对应的特征向量分别为:

u 1 = 1 3 [ 1 − 1 − 1 ] , u 2 = 1 6 [ 2 1 1 ] , u 3 = 1 2 [ 0 1 − 1 ] {\bm u}_1 = \frac{1}{\sqrt{3}} \begin{bmatrix} 1 \\ -1 \\ -1 \end{bmatrix}, \quad {\bm u}_2 = \frac{1}{\sqrt{6}} \begin{bmatrix} 2 \\ 1 \\ 1 \end{bmatrix}, \quad {\bm u}_3 = \frac{1}{\sqrt{2}} \begin{bmatrix} 0 \\ 1 \\ -1 \end{bmatrix} u1=3 1 1−1−1 ,u2=6 1 211 ,u3=2 1 01−1

取最大的两个特征值 λ 2 , λ 3 \lambda_2, \lambda_3 λ2,λ3对应的特征向量构成压缩空间,形成新的向量:

y ~ = [ u 2 u 3 ] ⊤ x = [ 2 / 6 1 / 6 1 / 6 0 1 / 2 − 1 / 2 ] x {\tilde {\bm y}} = \begin{bmatrix} {\bm u}_2 & {\bm u}_3 \end{bmatrix}^\top {\bm x} = \begin{bmatrix} 2/\sqrt{6} & 1/\sqrt{6} & 1/\sqrt{6} \\ 0 & 1/\sqrt{2} & -1/\sqrt{2} \end{bmatrix} {\bm x} y~=[u2u3]⊤x=[2/6 01/6 1/2 1/6 −1/2 ]x


K-L 变换为:

y = W ⊤ x = [ u 1 u 2 u 3 ] ⊤ x = [ 1 / 3 − 1 / 3 − 1 / 3 2 / 6 1 / 6 1 / 6 0 1 / 2 − 1 / 2 ] x {\bm y} = {\bm W}^\top {\bm x} = \begin{bmatrix} {\bm u}_1 & {\bm u}_2 & {\bm u}_3 \end{bmatrix}^\top {\bm x} = \begin{bmatrix} 1/\sqrt{3} & -1/\sqrt{3} & -1/\sqrt{3} \\ 2/\sqrt{6} & 1/\sqrt{6} & 1/\sqrt{6} \\ 0 & 1/\sqrt{2} & -1/\sqrt{2} \end{bmatrix} {\bm x} y=W⊤x=[u1u2u3]⊤x= 1/3 2/6 0−1/3 1/6 1/2 −1/3 1/6 −1/2 x

相关推荐
前端小L12 分钟前
二分查找专题(二):lower_bound 的首秀——精解「搜索插入位置」
数据结构·算法
老黄编程1 小时前
三维空间圆柱方程
算法·几何
落羽的落羽1 小时前
【C++】现代C++的新特性constexpr,及其在C++14、C++17、C++20中的进化
linux·c++·人工智能·学习·机器学习·c++20·c++40周年
xier_ran1 小时前
关键词解释:DAG 系统(Directed Acyclic Graph,有向无环图)
python·算法
CAU界编程小白2 小时前
数据结构系列之十大排序算法
数据结构·c++·算法·排序算法
好学且牛逼的马2 小时前
【Hot100 | 6 LeetCode 15. 三数之和】
算法
橘颂TA2 小时前
【剑斩OFFER】算法的暴力美学——二分查找
算法·leetcode·面试·职场和发展·c/c++
lkbhua莱克瓦242 小时前
Java基础——常用算法4
java·数据结构·笔记·算法·github·排序算法·快速排序
云雾J视界3 小时前
AI驱动半导体良率提升:基于机器学习的晶圆缺陷分类系统搭建
人工智能·python·机器学习·智能制造·数据驱动·晶圆缺陷分类
m0_748248023 小时前
揭开 C++ vector 底层面纱:从三指针模型到手写完整实现
开发语言·c++·算法