python - 是否可以在多元回归中使用单个变量进行预测?
问题描述
在使用多个训练数据创建的线性回归中,我必须仅使用一个变量进行预测。
一种可能的场景结果如下:
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)
有什么办法可以做到这一点?
解决方案
线性回归的目的是找到输入值和输出值之间的线性关系。
基本上它是:y=θx+Ɛ
根据y
您的预测、θ
模型参数(通过训练进行微调)、x
您的输入和Ɛ
误差系数。培训的目的是找到最好的θ
,Ɛ
并使您的预测尽可能准确。
您不能训练具有特定维度(输入和输出)的线性回归模型并使用另一个维度进行预测:
在您谈到的示例中,公式中[price, horsepower]
的(2,1)矩阵用于确定标量的价格。所以,应该是一个(1,2)矩阵和一个标量。x
y
θ
Ɛ
如果您只想使用价格或马力,则必须为每种输入创建不同的模型。
推荐阅读
- laravel - Laravel 集体表单到普通 html 表单
- here-api - 使用下载的地图搜索地址
- python - 将列与随附的标签列堆叠在一起
- c++ - 您可以将数组的子部分传递给函数吗?C++
- python - Python小写错误:'list'对象没有属性'str'
- python-3.x - 具有混合效应 ANCOVA 的 statsmodel 的最小二乘均值
- swift - 为计算属性添加 @Published 行为
- arrays - 有没有办法改组 json 值对的
- d3.js - 是否可以使用 dc.js 以 x 和 y 轴作为力创建气泡图?
- python - Unicode 空间自动转义,不再被`strip()` 识别