串糖葫芦了: 矩阵乘法/线性变换 + 特征分解/奇异值分解(SVD) + PCA(请假设中间串了一根棍儿O(∩_∩)O)

写在前面

(1)如果我们有 m 条数据,每条数据有 n 个特征,我们会把整份数据描述为一个 m × n 的矩阵,m 行 n 列

(2)提到向量,除非特意点名,否则默认就是列向量,比如这样写 x = ( 2 , 1 , 3 ) T x = (2, 1, 3)^T x=(2,1,3)T(转置转置转置啊)。

ps:不同书籍论文等,可能会有不同的标准,但是我个人一直都是以上面这个写法来理解的。很多机器/深度学习的公开数据集、内置算法等,也都是这样约定的。所以,当我看见“行对应特征”、“列对应样本数”以及“默认行向量”的讲解,我就脑瓜子嗡嗡的……(大佬们为什么要互相伤害,有个统一的基础不好吗?)当看到不同的资料写法有出入的时候,可以检查一下是不是约定基础不同造成的。

可以开始串山楂了

因为我只想写一些理解,用词可能不太规范。

首先要有一个认识,就是矩阵乘法其实就是在做线性变换,变换就是一种映射/map/函数/投影,只不过一定会符合两条约束:加性和齐性

加性就是:先求和再变换 = 先变换再求和;
齐性就是:先缩放再变换 = 先变换再缩放;

当一个矩阵确定了,特定的变换也就确定了。矩阵乘法有左乘和右乘的区别,我们先 y = A x y = A x y=Ax 为例来讲(再附一遍 x x x y y y 都是列向量),矩阵 A 就是那个变换。

向量 x x x 可以看做是一个空间中的坐标点,矩阵 A 这个线性变换对向量 x x x 做了什么呢?

答案是:旋转和缩放

第一个山楂:矩阵变换对应旋转例子

以最常见的二维直角坐标系来举例,如果其中有个点 A ( 1 , 0 ) A(1, 0) A(1,0),把这个点绕着原点逆时针绕 60° 会落在 B,B 的具体坐标是?(8 好意思,画图太麻烦我又强迫症不想拍照贴图,/(ㄒoㄒ)/~~)

θ = π / 3 \theta = \pi / 3 θ=π/3 ,中学就掌握这个计算了:
x B = c o s ( θ ) x A − s i n ( θ ) y A = 1 / 2 x_B = cos(\theta) x_A - sin(\theta)y_A = 1/2 xB=cos(θ)xAsin(θ)yA=1/2
y B = s i n ( θ ) x A + c o s ( θ ) y A = 3 / 2 y_B = sin(\theta) x_A + cos(\theta)y_A = \sqrt3/2 yB=sin(θ)xA+cos(θ)yA=3 /2

写成矩阵乘法形式就是:
[ x B y B ] = [ c o s ( θ ) − s i n ( θ ) s i n ( θ ) c o s ( θ ) ] [ x A y A ] \left [ \begin{matrix} x_B \\ y_B \end{matrix} \right ] = \left [ \begin{matrix} cos(\theta ) & -sin(\theta)\\ sin(\theta ) & cos(\theta) \end{matrix} \right ] \left [ \begin{matrix} x_A\\ y_A \end{matrix} \right ] [xByB]=[

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值