在使用多个训练数据创建的线性回归中,我只能使用一个变量进行预测
一种可能的情景结果如下:
import numpy as np
from sklearn.linear_model import LinearRegression
x = [[0, 1], [5, 1], [15, 2], [25, 5], [35, 11], [45, 15], [55, 34], [60, 35]]
y = [4, 5, 20, 14, 32, 22, 38, 43]
x, y = np.array(x), np.array(y)
model = LinearRegression().fit(x, y)
test_x = np.array([5, 20, 14, 32, 22, 38])
model.predict(test_x.reshape(-1,1))
ValueError: matmul: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (n?,k),(k,m?)->(n?,m?) (size 2 is different from 1)
有没有办法做到这一点
线性回归的目的是找出输入值和输出值之间的线性关系
基本上,它是:{}你的预测,{}模型参数(通过训练微调),{}你的输入和{}一个误差系数。培训的目的是找到最佳的
θ
和Ɛ
,使您的预测尽可能准确To illustrate with a picture, θ and Ɛ are the red curve
您不能训练具有特定维度(输入和输出)的线性回归模型,并使用另一维度进行预测:
在您的示例中,您谈到了^{,在公式中,a(2,1)矩阵是^{,用于确定价格^{,它是一个标量。所以,
θ
应该是一个(1,2)矩阵和Ɛ
一个标量如果您只想使用价格或马力,则必须为每种输入创建不同的模型
特征矩阵中的每个观察值由2个值组成(针对2个特征)。您试图一次传递6个值,而不是将这6个值分成3个数组,每个数组由2个值组成(表示数据中的观察值)
我可以为您所需的方法建议两种方法:
相关问题 更多 >
编程相关推荐