对测试数据集使用 cross_val_predict
Using cross_val_predict against test data set
我对在测试数据集中使用交叉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)
我对下一步很困惑,我如何使用上面学到的来对测试数据集进行预测?
正如@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.
我不认为 cross_val_score
或 cross_val_predict
在预测之前使用拟合。它即时执行。如果您查看 documentation (section 3.1.1.1),您会发现他们从未在任何地方提及合适。
我不确定问题是否得到了回答。我也有类似的想法。我想将结果(例如准确性)与不应用 CV 的方法进行比较。 CV valiadte 准确度在 X_train 和 y_train 上。另一种方法使用 X_trian 和 y_train 拟合模型,在 X_test 和 y_test 上测试。所以比较是不公平的,因为它们在不同的数据集上。
您可以使用 cross_validate
返回的估算器
lr_fit = cross_validate(lr, train_df[features_columns], train_df["目标"], cv=kf, return_estimator=是)
y_pred = lr_fit.predict(test_df[feature_columns])
准确度 = (y_pred == test_df["目标"]).mean()
我对在测试数据集中使用交叉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)
我对下一步很困惑,我如何使用上面学到的来对测试数据集进行预测?
正如@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.
我不认为 cross_val_score
或 cross_val_predict
在预测之前使用拟合。它即时执行。如果您查看 documentation (section 3.1.1.1),您会发现他们从未在任何地方提及合适。
我不确定问题是否得到了回答。我也有类似的想法。我想将结果(例如准确性)与不应用 CV 的方法进行比较。 CV valiadte 准确度在 X_train 和 y_train 上。另一种方法使用 X_trian 和 y_train 拟合模型,在 X_test 和 y_test 上测试。所以比较是不公平的,因为它们在不同的数据集上。
您可以使用 cross_validate
返回的估算器lr_fit = cross_validate(lr, train_df[features_columns], train_df["目标"], cv=kf, return_estimator=是)
y_pred = lr_fit.predict(test_df[feature_columns])
准确度 = (y_pred == test_df["目标"]).mean()