python - Scikit-learn - 如何为 CV 对象使用单个静态验证集?
问题描述
在 Scikit-learn中RandomSearchCV
,GridSearchCV
需要cv
参数的交叉验证对象,例如,GroupKFold
或任何其他 CV 拆分器sklearn.model_selection
。
但是,如何使用单个静态验证集?我有非常大的训练集,大验证集,我只需要 CV 对象的接口,而不是整个交叉验证。
具体来说,我使用的是 Scikit-optimize 和BayesSearchCV
( docs ),它需要 CV 对象(与常规 Scikit-learn 对象相同的接口SearchCV
)。我想使用我选择的验证集,而不是整个简历。
解决方案
的模型选择对象的文档scikit-learn
,例如GridSearchCV
,可能更清楚如何实现这一点:
cv: int,交叉验证生成器或可迭代对象,默认=None
- ...
- 一个可迭代的收益 (train, test) 拆分为索引数组。
因此,您需要将用于训练和测试样本的索引数组作为一个元组,然后将它们包装在一个可迭代的对象中,例如一个列表:
train_indices = [...] # indices for training
test_indices = [...] # indices for testing
cv = [(train_indices, test_indices)]
将使用单个元组定义的这个传递cv
给模型选择对象,它将始终使用相同的样本进行训练和测试。
推荐阅读
- azure - 无法在 Azure 门户中保存 JSON 配置文件更新
- javascript - How to autofocus on a specific input field in React (after clicking on another element)?
- flutter - 如何根据 Flutter 中另一个文本字段的值自动设置文本字段的值?
- flutter - 我如何全局处理用户交互?
- r - 插入行以填写 R 中缺少的日期
- angular - 无法在 Windows 10 代理网络系统中安装 angular-cli
- reactjs - React TypeScript - 传递回调函数
- javascript - 将响应正文 blob 转换为 json 或 javascript 中的纯文本
- python-3.x - FileNotFoundError: [Errno 2] No such file or directory -- 即使我使用的是完整路径
- javascript - 如何使用猫鼬将 JSON 中的对象保存在不同的文档中?