【发布时间】:2017-07-30 11:43:33
【问题描述】:
我正在使用 GridSearchCV 和 cv = KFold(n_splits=10),scoring='accuracy' 和一些测试 SVM (c=1, gamma=1)。
对于这个测试,我只使用了 51 个值的向量,以及 51 个二进制响应中的另一个。
我的结果如下所示:
'split0_test_score': array([ 0.16666667]), 'split1_test_score': array([ 0.4]), 'split2_test_score': array([ 0.8]), 'split3_test_score': array([ 0.6]), 'split4_test_score': array([ 0.2]), 'split5_test_score': array([ 1.]), 'split6_test_score': array([ 0.2]), 'split7_test_score': array([ 0.]), 'split8_test_score': array([ 0.4]), 'split9_test_score': array([ 0.6]),
'mean_test_score': 数组([ 0.43137255]) ...
问题是平均分并不是所有折叠测试分数的实际平均分(应该是0.4367)。有没有办法从 GridSearchCV 获得所有折叠的真实平均值?还是我必须手动提取它? 谢谢
【问题讨论】:
-
您要发送到 GridSearchCV 的参数是什么?
-
正如我所说,我发送以下内容:svm(或 svc),rbf,C=1,gamma = 1,cv = kFold (n_splits=10),njobs=-1,scoring = '准确度')然后我将它拟合到我的两个向量上,一个响应和一个带有值(特征)。看起来,如果省略一个,平均值很好(也许看起来很好,因为有 51 个,所以它使用这种评分方法收敛)。我最终使用了手动从折叠中提取的值的平均值,但发生这种情况对我来说仍然很奇怪。
-
这意味着您没有为要检查的参数使用任何多个值,所以为什么要使用 gridSearchCV。
-
我只是将它用于测试,所以这只是一个例子。我认为它也应该起作用。另外,我尝试了多个参数和更多功能,如果我记得很清楚,我遇到了同样的问题(这就是我得到这个测试示例的方式)。
标签: scikit-learn