numpy基础(part15)--线性模型
Posted GoatGui
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了numpy基础(part15)--线性模型相关的知识,希望对你有一定的参考价值。
学习笔记,这个笔记以例子为主。
开发工具:Spyder
线性模型
若有一组观测值:
[x11, x12, y1], [x21, x22, y2], [x31, x32, y3],
...
[xn1, xn2, yn]
则总体回归模型为:
列成矩阵形式:
在给出总体中的一组样本,则估计的样本回归函数为:
若要求出偏回归系数????1, ????2,和截距项 ????0,则有相关函数:
B = np.linalg.lstsq(X, Y)
b1 = B[0][0]
b2 = B[0][1]
b0 = B[0][2]
若有k个自变量,则相关函数的写法以此类推。
举个例子(对模拟的数据进行多元回归分析)
代码:
import numpy as np
X = np.array([range(1, 11),
np.random.randint(1, 20, 10),
np.ones(10)]).T
Y = 2*X[:, 0] - X[:, 1] + 5*X[:, 2] + \\
np.array(np.random.normal(0, 1, 10))
B = np.linalg.lstsq(X, Y)
print(B)
b1 = B[0][0]
b2 = B[0][1]
b0 = B[0][2]
print(b1:, b1, b2:, b2, b0:, b0)
结果:
(array([ 1.91143292, -1.13716838, 6.97656854]), array([ 5.11734472]), 3, array([ 47.9682451 , 11.92711516, 0.88959877]))
b1: 1.91143292471 b2: -1.13716837881 b0: 6.97656854129
则由该样本估计的回归方程为:
若有点集[[1, 2], [3, 4], [5, 6]]则带入回归方程中,求出预测值:
import numpy as np
X = np.array([range(1, 11),
np.random.randint(1, 20, 10),
np.ones(10)]).T
Y = 2*X[:, 0] - X[:, 1] + 5*X[:, 2] + \\
np.array(np.random.normal(0, 1, 10))
B = np.linalg.lstsq(X, Y)
Xpre = np.array([[1, 2, 1], [3, 4, 1], [5, 6, 1]])
Ypre = Xpre.dot(B[0])
print(Ypre)
结果:
[ 4.00497056 6.18824332 8.37151608]
以上是关于numpy基础(part15)--线性模型的主要内容,如果未能解决你的问题,请参考以下文章
python pytorch numpy DNN 线性回归模型
线性模型: numpy.ndarray 大小已更改,可能表示二进制不兼容。预期来自 C 标头的 88,从 PyObject 得到 80”