SKLearn使用新数据进行预测

时间:2018-05-04 18:36:27

标签: python machine-learning scikit-learn

我已尝试使用SKLearn进行线性回归。我有类似的信息:Calories Eaten |重量。

150 | 150

300 | 190

350 | 200

基本上编号,但我已将数据集纳入线性回归模型。

我感到困惑的是,我将如何预测新数据,比如说我有10个新的卡路里消耗数量,我想让它预测体重?

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

但是,如何才能使仅使用我的10个新数据卡路里数量并使其成为测试集我希望回归量预测?

3 个答案:

答案 0 :(得分:2)

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

对于新数据(预测):

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

您知道相应的权重值,并且您想要评估模型:

确保您有两个单独的数据集:x_test(包含要素)和y_test(包含标签)。使用y_pred变量生成预测,然后使用许多性能指标计算其性能。最常见的是均方根,您只需将y_testy_pred作为参数传递。以下是sklearn提供的所有regression performance metrics的列表。

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

使用train_test_split将您的初始数据集拆分为两部分: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_trainy_train训练模型。然后通过预测x_test并将这些predictionsy_test的实际结果进行比较来评估模型的培训效果。通过这种方式,您可以了解模型的执行方式。此外,您可以相应地预测weight values个新数据点的10

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

答案 1 :(得分:1)

  

我很困惑的是,我将如何用新的预测   数据,说我吃了10个新卡路里数,我想要它   预测体重?

是的,Calories Eaten代表自变量,而Weight代表dependent变量。

将数据拆分为训练集和测试集后,下一步是使用X_trainy_train数据调整回归量。

训练模型后,您可以预测X_test方法的结果,因此我们得到了y_pred

现在,您可以将y_pred(预测数据)与y_test进行比较,这是真实数据。

您还可以对创建的线性模型使用score方法,以获得模型的性能

score使用R^2(R平方)指标或Coefficient of determination.

计算
score = regressor.score(x_test, y_test)

要拆分数据,您可以使用train_test_split方法。

from sklearn.model_selection import train_test_split
X_train, y_train, X_test, y_test = train_test_split(eaten, weight, test_size = 0.2, random_state = 0)

答案 2 :(得分:1)

您必须在sklearn中使用model_selection选择模型,然后训练并拟合数据集。

from sklearn.model_selection import train_test_split
X_train, y_train, X_test, y_test = train_test_split(eaten, weight)

regressor.fit(X_train, y_train)
y_pred = regressor.predict(X_test)