首页 > 解决方案 > 使用 cross_val_score() 的正确方法是什么

问题描述

考虑这样的函数调用:cross_val_score(model, X, y, cv).
在这个函数调用之前,我已经用 训练了一个模型DecisionTreeClassifier().fit(),我们称之为trained_model

我有这些问题:

  1. model: 我应该把什么传递给这个参数?DecisionTreeClassifier(),DecisionTreeClassifier().fit()trained_model?
    当我构建时trained_model,我已经random_state为分类器和train_test_split(). 我应该random_state进去cross_val_score()吗?
  2. X, y: 我应该将什么传递给这些参数?X_train, y_train还是只是X, y

目前我的cross_val_score()电话是这样的:
scores_dtree_cv_kfold = cross_val_score(trained_model, X, y, cv=KFold(5)) 我不太确定我在做什么。

任何人都可以判断我做得是否正确,我怎么做错了,会发生什么?

标签: machine-learningscikit-learncross-validation

解决方案


交叉验证是一种测试(未拟合)模型及其参数的方法。
因此,该函数需要未拟合的模型(例如cross_val_score(DecisionTreeClassifier()))。

X, y应该是整个数据,因为该函数会将它们分成 k 折叠。


推荐阅读