水晶球APP 高手云集的股票社区
下载、打开
X

推荐关注更多

牛到成功工作室

20年证券投资经验,擅长把...


骑牛看熊

拥有10多年的证券从业投资...


牛牛扫板

高准确率的大盘预判。热点龙...


风口财经

重视风口研究,擅长捕捉短线...


短线荣耀

主攻短线热点龙头为主,坚持...


牛市战车

投资策略:价值投资和成长股...


妖股刺客

职业研究15年,对心理分析...


投资章鱼帝

把握市场主线脉动和龙头战法...


股市人生牛股多

20多年金融经验,工学学士...


蒋家炯

见证A股5轮牛熊,98年始...


banner

banner

机器学习笔记004 | 矩阵和向量,提升效率的数学工具

止一之路   / 2017-09-08 08:21 发布


重新复习了下矩阵和向量的知识。

1 矩阵

例如我们有这么一个矩阵:

矩阵

矩阵

可以看到,这是一个 4 × 2 的矩阵。

那么我们怎么得到其中的数据呢?

对于这样的矩阵,有两个下标,分别是i和j。其中i代表着行,j代表着列。那么Aij就可以指向对应行和列的数据。

如果索引从1开始,那就是:

A21 = 110
A31 = 50
A42 = 120

如果索引从0开始,那么就是:

A10 = 110
A20 = 50
A31 = 120

向量是一种特殊的矩阵,它只有一列,例如:

向量

向量

和矩阵类似,对于向量的调用,直接使用vi即可。

如果索引从1开始,那就是:

v2 = 110
v3 = 50

如果索引从0开始,那就是:

v1 = 110
v2 = 50

2 运算

对于矩阵的运算,具体是怎么样的呢?

2.1 加减法运算

加法运算:

矩阵加法

矩阵加法

例如:

矩阵加法例子

矩阵加法例子

颜色相同的方框数字进行相加,例如这里: 8 + 3 = 11,6 + 10 = 16

减法运算:

矩阵减法

矩阵减法

需要注意的是,进行加减运算的两个矩阵维度必须是相同的。

2.2 矩阵乘以标量

矩阵乘以标量:

矩阵乘以标量

矩阵乘以标量

所谓的标量,其实就是指具体的常数。

例如:

矩阵乘以标量例子

矩阵乘以标量例子

标量和矩阵中每一个数字相乘,这里是: 4 × 2 = 8,5 × 2 = 10

矩阵除以标量:

矩阵除以标量

矩阵除以标量

如果是除法的话,可以看成乘以它的倒数。

我们看一下稍微复杂点的运算:


在这里: 4 ÷ 2 - 3 × 2 = -4

2.3 矩阵相乘

矩阵乘以向量:

矩阵乘以向量

矩阵乘以向量

矩阵A是一个 4 × 2 的矩阵,向量B是一个 2 × 1 的矩阵,矩阵A乘以向量B,得到的结果向量C是一个 4 × 1 的矩阵。

计算的方式如下:


矩阵A的每一行中的数字,都和向量B对应中的数字相乘,加总后的结果落在向量C上,行对应的就是矩阵A对应行号:

1 × 1 + 2 × 3 = 7
0 × 1 + 3 × 3 = 9
-1 × 1 + (-2) × 3 = -7
1 × 1 + 5 × 3 = 16

需要注意的是,左边矩阵的列数,要和右边矩阵的行数相同。

矩阵乘以矩阵:

矩阵乘以矩阵

矩阵乘以矩阵

矩阵乘以矩阵可以看做矩阵乘以多个向量,当然,也同样要遵守一个规则:左边矩阵的列数,要和右边矩阵的行数相同。

最终得到的结果矩阵C,行数是矩阵A的行数,列数是矩阵B的列数。例如下面两个矩阵相乘:

计算的方式如下:


所以计算的过程如下:

1 × 1 + 3 × 2 = 7 , 1 × 0 + 3 × 3 = 9
2 × 1 + 4 × 2 = 10 , 2 × 0 + 4 × 3 = 12
0 × 1 + 5 × 2 = 10 , 0 × 0 + 5 × 3 = 15

3 应用

又是列公式,又是写演算过程的,到底这个东西,有什么用?

不知道你有没有发现,矩阵的相乘,是一种打包的运算。一次运算,就能得到我们想要的结果。

还记得我们之前那个预测函数吧:hθ(x) = θ0 + θ1x

对于房价数据:


我们有预测函数hθ(x) = -40 + 2x

那么我们可以构建一个矩阵和向量:


为了方便演示,对于房价面积,这里仅仅使用了前4行数据。

这样,经过一次计算,就能够得到所有的预测结果。

如果我们有多个预测函数:

1.hθ(x) = -40 + 2x
2.hθ(x) = 200 + 0.1x
3.hθ(x) = -150 + 4x

也是类似:


通过矩阵相乘的方式,可以大大降低编码复杂度和计算的时间。

编码

编码

4 注意

4.1 相乘的位置不能互换

A × B ≠ B × A

例如前面这个图:

矩阵乘以矩阵

矩阵乘以矩阵

如果将顺序换过来,完全就不能满足规则:左边矩阵的列数,要和右边矩阵的行数相同。

矩阵B是 2 × 2 ,矩阵A是 3 × 2 。

4.2 相乘的次序不影响结果

( A × B ) × C = A × ( B × C )

4.3 单位矩阵

单位矩阵,在左上到右下的对角线上元素都是1,例如一个 3 × 3的矩阵:


别的矩阵和单位矩阵相乘,得到的结果就是其自身:A × I = A

4.4 逆矩阵

逆矩阵就是使得与矩阵相乘得到的结果,是一个单位矩阵的矩阵,例如

A × A-1 = I

那么我们就说A-1是A的逆矩阵。

4.5 转置矩阵

转置矩阵其实是原来矩阵的行变成了新矩阵的列,以一个90°的角度进行了旋转。下面两个图就是矩阵A和它的转置矩阵AT。


A的转置矩阵

A的转置矩阵

文章提前发布在**:止一之路