【问题标题】:Using cross_val_predict against test data set对测试数据集使用 cross_val_predict
【发布时间】: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

标签: python machine-learning scikit-learn data-science


【解决方案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),您会发现他们从未提及适合任何地方。

    【讨论】:

      猜你喜欢
      • 2018-05-20
      • 1970-01-01
      • 2015-02-10
      • 1970-01-01
      • 2020-06-01
      • 1970-01-01
      • 2013-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多