Scikit learn 如何使用GridSearchCV获得k倍的实际平均值?

Scikit learn 如何使用GridSearchCV获得k倍的实际平均值?,scikit-learn,Scikit Learn,我正在使用GridSearchCV和cv=KFold(n_splits=10),并使用一些测试SVM(c=1,gamma=1)对class='accurity'进行评分 对于这个测试,我只使用51个值的向量,以及51个二进制响应中的另一个 我的结果如下所示: 'split0_test_score': array([ 0.16666667]), 'split1_test_score': array([ 0.4]), 'split2_test_score': array([ 0.8]), 'spl

我正在使用GridSearchCV和cv=KFold(n_splits=10),并使用一些测试SVM(c=1,gamma=1)对class='accurity'进行评分

对于这个测试,我只使用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]), 
“平均测试分数”:数组([0.43137255])

问题是平均分数不是所有折痕测试分数的实际平均分数(应该是0.4367)。有没有办法从GridSearchCV获得所有褶皱的真实平均值?还是必须手动提取?
谢谢

我也注意到了使用Scikit learn的GridSearchCV时出现的这种差异。使用我自己的测试用例,在
splitX\u测试分数[i]
上的平均值(
numpy.mean
)与属性
cv\u结果的
mean\u测试分数
之间的差异在第17位小数点后2倍处就很明显了。10倍,与小数点后第6位有差异。 我认为这个问题可能与浮点精度有关。请解释一下,
表示测试分数的准确程度(使用哪个函数,使用哪个浮点精度)?非常感谢


编辑:我在下面的主题中阅读了莉娜的答案:。差异是由于参数
iid
造成的。如果设置为
False
,则
mean_test_score
将根据褶皱的平均值计算。

发送到GridSearchCV的参数是什么?如前所述,我将发送以下参数:svm(或svc)、rbf、C=1、gamma=1、cv=kFold(n_splits=10)、njobs=-1、,评分=‘准确度’),然后我将其拟合到两个向量上,一个是响应,另一个是值(特征)。似乎在遗漏一项的情况下,平均值是好的(可能是因为有51项,所以使用这种评分方法会收敛)。我最终使用了手动从折叠中提取的值的平均值,但这种情况对我来说仍然很奇怪。这意味着您没有对要检查的参数使用任何多个值,所以为什么要使用gridSearchCV。我只将其用于测试,所以这只是一个示例。我认为它也应该起作用。另外,我尝试了多个参数和更多的特性,如果我记得清楚的话,我也遇到了同样的问题(这就是我如何得到这个测试示例的)。