谁能告诉我A和B之间的区别?
A =kfold = KFold(n_splits=5)
grid = GridSearchCV(SVC(), parameters, cv=kfold, scoring='accuracy')
B= GridSearchCV(svc, parameters, cv=cv, scoring='accuracy', n_jobs=cpu_num)
答案 0 :(得分:0)
我假设在情况B中cv的值为5。
如您在sklearn文档中所述:
确定交叉验证拆分策略。简历的可能输入是:
- 没有,要使用默认的三折交叉验证,
- 整数,用于指定(分层)KFold中的折叠次数,
- CV分离器
- 可迭代的屈服(训练,测试)分解为索引数组。
对于整数/无输入,如果估计量是分类器,而y是二进制或多类,则使用StratifiedKFold。在所有其他情况下,都使用KFold。
因此,在您的情况下,问题应该是StratifiedKFold和KFold之间的区别是什么。 here可以找到很好的解释,但是要总结一下,使用StratifiedKFold时,每个折叠包含与目标集合大致相同百分比的每个目标类别的样本。当您的数据集具有高度不平衡的类时,这特别有用。
如果您的问题是关于n_jobs参数的,那么它仅指“并行运行的作业数”-它可以减少您需要查找最佳参数的时间,因为它可以使分类器在不同的折叠位置进行匹配。 / p>