Numpy中的矩阵和向量
1. 使用Numpy构造矩阵
例如: [[1,2,3],
[4,5,6]]
我们可以这样做:
A = np.array([[1,2,3],[4,5,6]])
2. 构造向量,向量可以分为行向量和列向量
构建列向量:
B = np.array([[2],[1],[3]])
使用这个方法可以将其转置为行向量
B = np.transpose(np.array([[2,1,3]]))
要进行矩阵乘法或矩阵向量乘法,可以使用np.dot()方法
w = np.dot(A,v)
3. 用numpy求解方程组
线性代数中比较常见的问题之一是求解矩阵向量方程。 这是一个例子。 我们寻找解决方程的向量x
A x = b
当
可以先构建A b 的数组
A = np.array([[2,1,-2],[3,0,1],[1,1,-1]])
b = np.transpose(np.array([[-3,5,-2]]))
为解决这个问题,我们可以使用
x = np.linalg.solve(A,b)
4. 应用:多元线性回归
我们寻找一种能够将输入数据点映射到结果值的函数。 每个数据点是特征向量(x1,x2,…,xm),由两个或多个捕获输入的各种特征的数据值组成。为了表示所有输入数据以及输出值的向量,我们设置了输入矩阵X和输出向量 y:
在简单的最小二乘线性回归模型中,我们寻找向量β,使得乘积Xβ最接近结果向量 y。
一旦我们构建了β向量,我们就可以使用它将输入数据映射到预测结果。 给定表单中的输入向量
我们可以计算预测结果值
计算β向量的公式是
β = (XT X)-1 XT y
接下来我们利用numpy构建矩阵和向量来求解β向量,一旦我们解决了β,我们将使用它来预测我们最初从输入数据集中遗漏的一些测试数据点。
我们在numpy中构造了输入矩阵X和结果向量y
Xt = np.transpose(X) XtX = np.dot(Xt,X) Xty = np.dot(Xt,y) beta = np.linalg.solve(XtX,Xty)
最后一行使用np.linalg.solve
计算β,因为等式是:
β = (XT X)-1 XT y
在数学上等价于方程组:
(XT X) β = XT y