用于机器学习的线性代数速查表
2018年03月03日 由 yuxiangyu 发表
971874
0
NumPy,Python的数值计算库,它提供了许多线性代数函数。对机器学习从业人员用处很大。
在这篇文章中,你将看到对于机器学习从业者非常有用的处理矢量和矩阵的关键函数。
这是一份速查表,所有例子都很简短,假设你处于熟悉它们的阶段,建议收藏备用。
本教程分为7个部分; 他们是:
- 数组
- 矢量
- 矩阵
- 矩阵的类型
- 矩阵运算
- 矩阵分解
- 统计
1.数组
创建NumPy数组有很多方法。
数组
from numpy import array
A = array([[1,2,3],[1,2,3],[1,2,3]])
零(用零填充数组)
from numpy import zeros
A = zeros([3,5])
一(用1填充数组)
from numpy import ones
A = ones([5, 5])
2.矢量
矢量是一个标量的行或者列。
矢量加法
c = a + b
矢量减法
c = a - b
矢量乘法
c = a * b
矢量除法
c = a / b
矩阵点积
c = a.dot(b)
矩阵乘以标量
c = a * 2.2
向量范数
from numpy.linalg import norm
l2 = norm(v)
3.矩阵
矩阵是标量组成的二维数组。
矩阵加法
C = A + B
矩阵减法
C = A - B
矩阵乘法(哈达马积)
C = A * B
矩阵除法
C = A / B
矩阵乘以矩阵(点积)
C = A.dot(B)
矩阵乘以向量(点积)
C = A.dot(b)
矩阵乘以标量
C = A.dot(2.2)
4.矩阵的类型
在更广泛的计算中经常使用不同类型的矩阵作为元素。
三角矩阵
# lower
from numpy import tril
lower = tril(M)
# upper
from numpy import triu
upper = triu(M)
对角矩阵
from numpy import diag
d = diag(M)
单位矩阵
from numpy import identity
I = identity(3)
5.矩阵运算
矩阵操作通常用作更高级计算的基础。
矩阵转置
B = A.T
矩阵求逆
from numpy.linalg import inv
B = inv(A)
矩阵的迹
from numpy import trace
B = trace(A)
矩阵行列式
from numpy.linalg import det
B = det(A)
矩阵的秩
from numpy.linalg import matrix_rank
r = matrix_rank(A)
6.矩阵分解
矩阵分解(matrix factorization或Matrix factorization)将矩阵分解为其组成部分,以使其他运算更简单,更稳定。
LU分解
from scipy.linalg import lu
P, L, U = lu(A)
QR分解
from numpy.linalg import qr
Q, R = qr(A, 'complete')
特征分解
from numpy.linalg import eig
values, vectors = eig(A)
奇异值分解
from scipy.linalg import svd
U, s, V = svd(A)
7.统计
统计数据总结了矢量或矩阵的内容,并且经常用作更广泛操作的组成部分。
均值
from numpy import mean
result = mean(v)
方差
from numpy import var
result = var(v, ddof=1)
标准差(均方差)
from numpy import std
result = std(v, ddof=1)
协方差矩阵
from numpy import cov
sigma = cov(v1, v2)
线性最小二乘
from numpy.linalg import lstsq
b = lstsq(X, y)
附:
NumPy API
线性代数:
https://docs.scipy.org/doc/numpy-1.13.0/reference/routines.linalg.html
统计:
https://docs.scipy.org/doc/numpy-1.13.0/reference/routines.statistics.html
其他速查表
https://minireference.com/static/tutorials/linear_algebra_in_4_pages.pdf
https://github.com/scalanlp/breeze/wiki/Linear-Algebra-Cheat-Sheet
https://s3.amazonaws.com/assets.datacamp.com/blog_assets/Python_SciPy_Cheat_Sheet_Linear_Algebra.pdf