首页 > 解决方案 > 是否可以在多元回归中使用单个变量进行预测?

问题描述

在使用多个训练数据创建的线性回归中,我必须仅使用一个变量进行预测。

一种可能的场景结果如下:

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)

有什么办法可以做到这一点?

标签: pythonpandasmachine-learningscikit-learndata-analysis

解决方案


线性回归的目的是找到输入值和输出值之间的线性关系。

基本上它是:y=θx+Ɛ根据y您的预测、θ模型参数(通过训练进行微调)、x您的输入和Ɛ误差系数。培训的目的是找到最好的θƐ并使您的预测尽可能准确。

用图片来说明,θ和Ɛ是红色曲线

您不能训练具有特定维度(输入和输出)的线性回归模型并使用另一个维度进行预测:

在您谈到的示例中,公式中[price, horsepower](2,1)矩阵用于确定标量的价格。所以,应该是一个(1,2)矩阵和一个标量xyθƐ

如果您只想使用价格或马力,则必须为每种输入创建不同的模型。


推荐阅读