如何按索引定制skLearning交叉验证迭代器? [英] How to customize sklearn cross validation iterator by indices?

查看:0
本文介绍了如何按索引定制skLearning交叉验证迭代器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Custom cross validation split sklearn类似,我想为GridSearchCV定义我自己的拆分,我需要为它定制内置的交叉验证迭代器。

我希望将用于交叉验证的我自己的训练测试索引集传递给GridSearch,而不是让迭代器为我确定它们。我翻遍了skLearning文档页面上可用的简历迭代器,但没有找到。

例如,我想要实现如下内容 数据有9个样本 对于2份简历,我创建了一套自己的培训测试指标

>>> train_indices = [[1,3,5,7,9],[2,4,6,8]]
>>> test_indices = [[2,4,6,8],[1,3,5,7,9]]
                 1st fold^    2nd fold^
>>> custom_cv = sklearn.cross_validation.customcv(train_indices,test_indices)
>>> clf = GridSearchCV(X,y,params,cv=custom_cv)

什么可以用来像Customcv一样工作?

推荐答案

实际上,交叉验证迭代器就是迭代器。它们在每次迭代中返回训练/测试折叠的元组。然后,这应该适用于您:

custom_cv = zip(train_indices, test_indices)

另外,对于您提到的特定情况,您可以

import numpy as np
labels = np.arange(0, 10) % 2
from sklearn.cross_validation import LeaveOneLabelOut
cv = LeaveOneLabelOut(labels)

观察list(cv)收益率

[(array([1, 3, 5, 7, 9]), array([0, 2, 4, 6, 8])),
 (array([0, 2, 4, 6, 8]), array([1, 3, 5, 7, 9]))]

这篇关于如何按索引定制skLearning交叉验证迭代器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆