首页 > 解决方案 > 验证 RandomizedSearchCV 结果的问题

问题描述

我从一个基本的逻辑回归开始,使用所有默认超参数。我得到 0.8855 的分数

问题接下来我运行一个随机搜索来找到最好的超参数;根据 RandomSearch C=10 with Max_iterations=110 给出 0.89 的分数

我使用这些超参数运行逻辑,但获得了更好的准确度,0.91!

为什么我没有得到完全相同的号码?

标签: scikit-learnlogistic-regressionbest-fit

解决方案


当您在训练集中再次运行它时,您肯定不会获得相同的准确度,这是因为当您进行 k 折交叉验证以检查特定超参数集的性能时,您会将整个数据分成多个k集合并使用k-1集进行训练并在剩下的一组上对其进行验证。并且您重复此过程k时间,并且每次您使用一组不同的数据进行验证。最后你计算所有k迭代的平均值并报告你得到的准确度random_result.best_score_,下图解释了这个过程在此处输入图像描述

现在,在获得一组最佳超参数后,您将把它拟合到整个训练数据上,即第 1 组、第 2 组和第 3 组,所以现在它很容易出现一些变化,因为数据已经改变并且您正在评估整个火车数据。所以你观察到的是完全正常的和通常的行为。

希望这可以帮助!


推荐阅读