【问题标题】:What is the criteria for selecting the best model in gridsearchcv with Ridge用 Ridge 在 gridsearchcv 中选择最佳模型的标准是什么
【发布时间】:2020-09-28 16:22:51
【问题描述】:

我试过 gridsearchcv

pipe = make_pipeline(StandardScaler(), Ridge())
param_grid = {'ridge__alpha': [1000, 100,10,1,0.1]}
grid_pipe = GridSearchCV(pipe, param_grid, cv = 5)

如果我在 ridge_alpha 中排除 1000,则 ridge_alpha = 100 是最好的模型。如果我在 ridge_alpha 中包含 1000,则 ridge_alpha 为 1000 是最好的模型,但是,该模型具有更高的 rmse 和更低的 R^2...为什么即使 1000 也不选择 alpha = 100?我认为 R^2 是使用 Ridge 进行回归的默认标准...

【问题讨论】:

    标签: python scikit-learn pipeline gridsearchcv


    【解决方案1】:

    gridsearchcv 检查交叉验证分数的每个拆分并获取所有这些拆分的平均值以找到更好的超参数。您可以使用grid_pipe.cv_results_ 来检查每个分割分数、平均分数和标准分数。它通过交叉验证拆分详细说明了每个超参数的结果。这样您就可以分析该数据以更好地理解。

    【讨论】:

    • 'params': [{'ridge__alpha': 10000}, {'ridge__alpha': 1000}, {'ridge__alpha': 100}, {'ridge__alpha': 10}, {'ridge__alpha': 1}, {'ridge__alpha': 0.1}],
    • 'mean_test_score':阵列([0.71258665,0.8502867,0.7563542,0.68739042,0.6649867]),'std_test_score':阵列([0.02610594,0.04905709,0.0443673,0.07058033,0.0835176]), 'rank_test_score': array([4, 1, 2, 3, 5, 6])}
    • 谢谢!我猜你是这个意思。 ridge_alpha = 1000 是使用均值 R^2 作为标准的交叉验证竞赛中的冠军,这就是 gridsearchcv 定义为最佳模型的方式。至于它在整个训练集或测试集上输给 ridge_alpha 为 100 的 R^2 竞争,这只是运气。对吗?
    • 非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    • 2017-12-16
    • 2020-02-27
    • 2017-02-13
    • 1970-01-01
    • 2012-03-15
    相关资源
    最近更新 更多