我想找到一个2*2
矩阵A
,y_i=A x_i
代表所有i=1,...,n
。所以我在python中使用以下代码进行线性回归:
import numpy as np
import matplotlib.pyplot as plt
import sklearn
from sklearn import datasets, linear_model
#n=5
X=np.random.uniform(0,1,(2,5))
A=np.random.uniform(0,1,(2,2))
y=np.dot(A,X)
print(y)
# Create linear regression object
regr = linear_model.LinearRegression()
# Train the model using the training sets
model=regr.fit(X, y)
#model.predict(X)
model.coef_
但是我的model.coef_
命令正在打印5*5
矩阵,而不是2*2
矩阵,我想要A
。我如何实现这一目标?
答案 0 :(得分:0)
将模型拟合到样本和结果的转置上 - 第二个维度将用于创建模型 - 以获得2x2数组:
model=regr.fit(X.T, y.T)
# test
np.testing.assert_allclose(y.T, model.predict(X.T))