对测试数据集使用 cross_val_predict

Posted

技术标签:

【中文标题】对测试数据集使用 cross_val_predict【英文标题】:Using cross_val_predict against test data set 【发布时间】:2017-05-24 10:21:51 【问题描述】:

我对在测试数据集中使用 cross cross_val_predict 感到困惑。

我创建了一个简单的随机森林模型并使用 cross_val_predict 进行预测

from sklearn.ensemble import RandomForestClassifier
from sklearn.cross_validation import cross_val_predict, KFold

lr = RandomForestClassifier(random_state=1, class_weight="balanced", n_estimators=25, max_depth=6)
kf = KFold(train_df.shape[0], random_state=1)
predictions = cross_val_predict(lr,train_df[features_columns], train_df["target"], cv=kf)
predictions = pd.Series(predictions)

我对下一步感到困惑,我如何使用上面学到的知识对测试数据集进行预测?

【问题讨论】:

你必须先fit你的模型,然后你可以打电话给predict 【参考方案1】:

正如@DmitryPolonskiy 评论的那样,模型必须经过训练(使用fit 方法)才能用于predict

# Train the model (a.k.a. `fit` training data to it).
lr.fit(train_df[features_columns], train_df["target"])
# Use the model to make predictions based on testing data.
y_pred = lr.predict(test_df[feature_columns])
# Compare the predicted y values to actual y values.
accuracy = (y_pred == test_df["target"]).mean()

cross_val_predict 是一种交叉验证方法,可让您确定模型的准确性。看看sklearn's cross-validation page。

【讨论】:

【参考方案2】:

我不认为 cross_val_scorecross_val_predict 在预测之前使用 fit。它是即时执行的。如果您查看documentation (section 3.1.1.1),您会发现他们从未提及适合任何地方。

【讨论】:

以上是关于对测试数据集使用 cross_val_predict的主要内容,如果未能解决你的问题,请参考以下文章

R语言使用caret包的predict函数对模型在测试集上的表现进行推理和预测predict函数对测试数据集进行数据预处理(和训练集的初始方式保持一致):缺失值填充数值变量最小最大缩放独热编码

对测试数据集使用 cross_val_predict

我是不是必须对训练和测试数据集分别进行一次热编码? [关闭]

5:使用caffe对自己的图像数据进行训练并测试

5:使用caffe对自己的图像数据进行训练并测试

R语言使用caret包的predict函数对测试数据集进行数据预处理(和训练集的处理方式保持一致):缺失值填充数值变量最小最大缩放因子变量独热编码等