首页 > 解决方案 > SKLearn 使用新数据进行预测

问题描述

我已经使用 SKLearn 尝试了线性回归。我的数据类似于:卡路里摄入量 | 重量。

150 | 150

300 | 190

350 | 200

基本上是由数字组成,但我已将数据集拟合到线性回归模型中。

我感到困惑的是,我将如何使用新数据进行预测,比如我有 10 个新的卡路里摄入量,我希望它来预测体重?

regressor = LinearRegression()
regressor.fit(x_train, y_train)
y_pred = regressor.predict(x_test) ??

但是,我将如何仅制作 10 个新的卡路里摄入数据数,并将其作为我希望回归器预测的测试集?

标签: pythonmachine-learningscikit-learn

解决方案


您是对的,您只需调用predict模型的方法并传入新的看不见的数据进行预测。现在它也取决于你的意思new data。您是否引用了您不知道结果的数据(即您不知道权重值),或者这些数据是否用于测试您的模型的性能?

对于新数据(预测):

你的方法是正确的。您只需打印y_pred变量即可访问所有预测。

您知道各自的权重值并且想要评估模型:

确保您有两个单独的数据集:x_test(包含特征)和 y_test(包含标签)。像使用变量一样生成预测y_pred,然后您可以使用许多性能指标来计算其性能。最常见的是均方根,您只需将y_testandy_pred作为参数传递。这是sklearn 提供的所有回归性能指标的列表。

如果不知道这 10 个新数据点的权重值:

使用train_test_split将您的初始数据集拆分为 2 部分:trainingtesting. 您将有 4 个数据集:x_trainy_trainx_testy_test

from sklearn.model_selection import train_test_split
# random state can be any number (to ensure same split), and test_size indicates a 25% cut
x_train, y_train, x_test, y_test = train_test_split(calories_eaten, weight, test_size = 0.25, random_state = 42) 

x_train通过拟合和训练模型y_train。然后通过预测x_test并将这些predictions与实际结果进行比较来评估模型的训练性能y_test。这样您就可以了解模型的性能。此外,您可以相应地预测weight values10数据点的值。

作为初学者,也值得进一步阅读该主题。是一个简单的教程。


推荐阅读