网格搜索中的参数CV

时间:2019-06-16 09:45:41

标签: python scikit-learn

谁能告诉我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)

1 个答案:

答案 0 :(得分:0)

我假设在情况B中cv的值为5。

如您在sklearn文档中所述:

  

确定交叉验证拆分策略。简历的可能输入是:

     
      
  • 没有,要使用默认的三折交叉验证,
  •   
  • 整数,用于指定(分层)KFold中的折叠次数,
  •   
  • CV分离器
  •   
  • 可迭代的屈服(训练,测试)分解为索引数组。
  •   
     

对于整数/无输入,如果估计量是分类器,而y是二进制或多类,则使用StratifiedKFold。在所有其他情况下,都使用KFold。

因此,在您的情况下,问题应该是StratifiedKFold和KFold之间的区别是什么。 here可以找到很好的解释,但是要总结一下,使用StratifiedKFold时,每个折叠包含与目标集合大致相同百分比的每个目标类别的样本。当您的数据集具有高度不平衡的类时,这特别有用。

如果您的问题是关于n_jobs参数的,那么它仅指“并行运行的作业数”-它可以减少您需要查找最佳参数的时间,因为它可以使分类器在不同的折叠位置进行匹配。 / p>