[英]Predicting new data using sklearn after standardizing the training data
[英]SKLearn Predicting using new Data
我已经尝试使用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个新数据并将其作为测试集我希望回归量预测?
您是对的,您只需调用模型的predict
方法并传入新的未见数据进行预测。 现在它还取决于new data
含义。 您是在引用您不知道结果的数据(即您不知道权重值),还是这些数据用于测试模型的性能?
对于新数据(预测):
你的方法是正确的。 您只需打印y_pred
变量即可访问所有预测。
您知道相应的重量值,并且您想要评估模型:
确保您有两个单独的数据集:x_test(包含要素)和y_test(包含标签)。 使用y_pred
变量生成预测,然后使用许多性能指标计算其性能。 最常见的是均方根,您只需将y_test
和y_pred
作为参数传递。 以下是sklearn提供的所有回归性能指标的列表。
如果您不知道10个新数据点的权重值:
使用train_test_split将您的初始数据集分为两部分: training
和testing
。 您将拥有4个数据集: x_train
, y_train
, x_test
, y_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
的实际结果进行比较来评估模型的训练表现。 通过这种方式,您可以了解模型的执行方式。 此外,您可以相应地预测10
新数据点的weight values
。
作为初学者,还值得进一步阅读该主题。 这是一个简单的教程。
令我感到困惑的是,我将如何预测新数据,说我有10个新的卡路里数据被吃掉了,我希望它能预测体重?
是的, Calories Eaten
表示自变量,而Weight
表示dependent
变量。
将数据拆分为训练集和测试集后,下一步是使用X_train
和y_train
数据拟合回归y_train
。
训练模型后,您可以预测X_test
方法的结果,因此我们得到了y_pred
。
现在,您可以将y_pred
(预测数据)与y_test
实际数据的y_test
进行比较。
您还可以为创建的线性模型使用score
方法,以获得模型的性能 。
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)
您必须在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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.