使用 scikit-learn 训练线性回归模型后,如何对原始数据集中不存在的新数据点进行预测?

Posted

技术标签:

【中文标题】使用 scikit-learn 训练线性回归模型后,如何对原始数据集中不存在的新数据点进行预测?【英文标题】:After training the Linear Regression model using scikit-learn , How to do predictions for new data points which are not there in original data set? 【发布时间】:2021-03-30 01:30:35 【问题描述】:

我正在学习线性回归,我使用 scikit-learn 编写了这个线性回归代码,在进行预测之后,如何对原始数据集中不存在的新数据点进行预测。

在此数据集中,您可以根据工作经验获得人们的薪水。

例如,一个工作经验为 15 年的人的预计工资应该是 [167005.32889087]

Here is image of data set

这是我的代码,

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

from sklearn.linear_model import LinearRegression

data = pd.read_csv('project_1_dataset.csv')

X = data.iloc[:,0].values.reshape(-1,1)

Y = data.iloc[:,1].values.reshape(-1,1)

linear_regressor = LinearRegression()

linear_regressor.fit(X,Y)

Y_pred = linear_regressor.predict(X)

plt.scatter(X,Y)
plt.plot(X, Y_pred, color = 'red')
plt.show()

【问题讨论】:

只需将值传递给linear_regressor.fit...? @fischmalte 能否请您详细说明一下如何进一步进行我不是这方面的专家?谢谢 【参考方案1】:

使用现有数据集拟合和训练模型后(即在linear_regressor.fit(X,Y) 之后),您可以以相同方式在新实例中进行预测:

new_prediction = linear_regressor.predict(new_data)
print(new_prediction)

new_data 是您的新数据点。

如果你想对特定的随机新数据点进行预测,上面的方式应该足够了。如果您的新数据点属于另一个数据帧,那么您可以将 new_data 替换为包含要预测的新实例的相应数据帧。

【讨论】:

以上是关于使用 scikit-learn 训练线性回归模型后,如何对原始数据集中不存在的新数据点进行预测?的主要内容,如果未能解决你的问题,请参考以下文章

R 与 scikit-learn 中用于线性回归 R2 的交叉验证

一文带你用Python玩转线性回归模型 ❤️加利福尼亚房价预测❤️回归模型评估指标介绍

[机器学习与scikit-learn-29]:算法-回归-普通线性回归LinearRegression拟合线性分布数据的代码示例

scikit-learn的线性回归模型

在 python 中使用 scikit-learn 线性回归模型时出错

机器学习系列6 使用Scikit-learn构建回归模型:简单线性回归多项式回归与多元线性回归