我使用GridCV跨k个折叠进行交叉验证,以调整我的超参数。在我的结果属性“cv\u results\中,平均结果应该是单个折叠的平均值,这是错误的。以下是我的代码:
gscv = GridSearchCV(n_jobs=n_jobs,cv=train_test_iterable, estimator=pipeline, param_grid=param_grid,
verbose=10, scoring=['accuracy', 'precision','recall','f1'], refit='f1',
return_train_score=return_train_score, error_score=error_score,
)
gscv.fit(X,Y)
gscv.cv_results_
cv\结果\包含以下json(显示为表格)
mean_test_f1 split0_test_f1 split1_test_f1 Actual Mean
0.934310796 0.935603198 0.933665455 0.934634326
0.931279716 0.908430118 0.942689316 0.925559717
0.927683609 0.912005672 0.935512149 0.923758911
0.680908006 0.741198823 0.650802701 0.696000762
0.680908006 0.741198823 0.650802701 0.696000762
0.646005028 0.684483208 0.626791532 0.65563737
0.840273248 0.847484083 0.836672627 0.842078355
0.837160828 0.847484083 0.832006068 0.839745075
0.833637 0.842109375 0.829406448 0.835757911
您可以看到上面的内容:“mean\u test\u f1”不是两次“split0\u test\u f1”、“split1\u test\u f1”的平均值。实际平均值是最后一列。你知道吗
注:F1为F1得分。你知道吗
有没有人面临类似的问题?你知道吗
尝试在
GridSearchCV(...)
中设置iid=False
,然后进行比较。你知道吗根据文件:
因此,当
iid
为真(默认情况下),测试分数的平均值包括指定的权重here in source code:请注意,培训分数不受其影响,因此还要交叉检查培训分数的平均值。你知道吗
我认为你看到的是一个加权平均数,而不是一个直接平均数。你知道吗
相关问题 更多 >
编程相关推荐