【问题标题】:How to use .fit() with cross validation如何使用 .fit() 进行交叉验证
【发布时间】:2020-11-30 14:23:35
【问题描述】:

我对数据科学还很陌生,有点困惑。 并且只是想确保我的方法有意义。

我创建的模型如下:

lr7 = GaussianNB().fit(X_train,y_train)

并在之后使用 cross_val_predict()。

y_pred8 = cross_val_predict(lr8, X_test, y_test, cv=5, n_jobs=-1, verbose=5)

首先交叉验证训练集不是更有意义吗?

scikitlearn 中还有一个cross_validate()函数。 将这个与火车数据集一起使用是否正确?在文档中,他们同时使用 X 和 y,而不是训练/测试拆分数据。

【问题讨论】:

  • 我们从不交叉验证 test 集。

标签: scikit-learn cross-validation


【解决方案1】:

实现交叉验证的一种简单方法是使用 cross_val_score 函数(来自 sklearn。这可能适合您的问题。

# build model
lr7 = GaussianNB()
scores = cross_val_score(lr7, X, y, cv=5)

请注意,在交叉验证中,您可以使用整个数据集或训练部分 X_trainy_train,但不要使用代码中显示的测试部分。

【讨论】:

  • 保留单独的测试集与交叉验证并不矛盾。这里应该强调的重要一点(鉴于 OP 在他们的帖子中显示的内容)是我们从不交叉验证 test 集。
  • @desertnaut 是的——公平点。这里的正确程序是什么?我应该编辑我的答案以反映这一点,还是应该简单地删除?
  • 我自己编辑了 - 请查看以确保您满意。
猜你喜欢
  • 2022-01-25
  • 2021-09-30
  • 2017-06-29
  • 2015-06-11
  • 2020-07-13
  • 2019-09-06
  • 2017-04-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多