我已尝试使用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个新数据卡路里数量并使其成为测试集我希望回归量预测?
答案 0 :(得分:2)
你是对的,你只需调用模型的predict
方法并传入新的看不见的数据进行预测。现在它还取决于new data
的含义。您是在引用您不知道结果的数据(即您不知道权重值),还是这些数据用于测试模型的性能?
对于新数据(预测):
你的方法是正确的。您只需打印y_pred
变量即可访问所有预测。
您知道相应的权重值,并且您想要评估模型:
确保您有两个单独的数据集:x_test(包含要素)和y_test(包含标签)。使用y_pred
变量生成预测,然后使用许多性能指标计算其性能。最常见的是均方根,您只需将y_test
和y_pred
作为参数传递。以下是sklearn提供的所有regression performance metrics的列表。
如果您不知道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
的实际结果进行比较来评估模型的培训效果。通过这种方式,您可以了解模型的执行方式。此外,您可以相应地预测weight values
个新数据点的10
。
作为初学者,还值得进一步阅读这个主题。 This是一个简单的教程。
答案 1 :(得分:1)
我很困惑的是,我将如何用新的预测 数据,说我吃了10个新卡路里数,我想要它 预测体重?
是的,Calories Eaten
代表自变量,而Weight
代表dependent
变量。
将数据拆分为训练集和测试集后,下一步是使用X_train
和y_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)