问题验证 RandomizedSearchCV 结果

Issue Validating RandomizedSearchCV Results

I start with a basic Logistic Regression, 使用所有默认超参数。我得到了 0.8855

的分数

Question 接下来我 运行 一个 RandomSearch 来找到最好的超参数;根据 RandomSearch C=10 和 Max_iterations=110 给出的分数为 0.89

我 运行 具有这些超参数的逻辑但获得了更好的精度,0.91!

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

当你在你的训练集中再次 运行 时,你肯定不会得到相同的准确度,这是因为当你做 k-fold 交叉验证来检查特定 hyper 集的性能时parameters 您将把整个数据分成 k 组,并使用 k-1 组进行训练,并在一​​组的左侧对其进行验证。然后你重复这个过程 k 次,每次你使用不同的数据集进行验证。最后,您计算所有 k 次迭代的平均值并报告您在 random_result.best_score_ 中获得的准确性,下图解释了该过程

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

希望对您有所帮助!