machine-learning - 使用 cross_val_score() 的正确方法是什么
问题描述
考虑这样的函数调用:cross_val_score(model, X, y, cv)
.
在这个函数调用之前,我已经用 训练了一个模型DecisionTreeClassifier().fit()
,我们称之为trained_model
。
我有这些问题:
model
: 我应该把什么传递给这个参数?DecisionTreeClassifier()
,DecisionTreeClassifier().fit()
或trained_model
?
当我构建时trained_model
,我已经random_state
为分类器和train_test_split()
. 我应该random_state
进去cross_val_score()
吗?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))
我不太确定我在做什么。
任何人都可以判断我做得是否正确,我怎么做错了,会发生什么?
解决方案
交叉验证是一种测试(未拟合)模型及其参数的方法。
因此,该函数需要未拟合的模型(例如cross_val_score(DecisionTreeClassifier())
)。
X, y
应该是整个数据,因为该函数会将它们分成 k 折叠。
推荐阅读
- paypal - 如何从 PayPal Plus 的付款选择页面中删除直接借记付款选项
- typescript - 向对象添加变量键/对会导致索引时出现打字错误
- sql-server - 具有多个更新、插入和删除的存储过程。如果最后一个 DML 命令失败会发生什么?
- dji-sdk - dji.common.mission.waypoint.Builder.calculateTotalTime() 返回的时间单位是多少
- python - 在 tweepy 中迭代 pandas.core.series.Series
- api - 如何在 shopify 产品元字段值中转义双引号?
- r - geom_boxplot 调整一个框的位置
- python - 尝试将文本文件放入数组时收到python值错误2
- bash - Bash - 在特定位置批量替换字符
- sql-server - 使用 GO 命令时 Transact-SQL 事务回滚无法正常工作