【问题标题】:Regression scoring decreases with Gridsearch使用 Gridsearch 降低回归得分
【发布时间】:2019-08-21 08:03:51
【问题描述】:

我是 scikit learn 的新手,所以请原谅我的无知。使用 GridsearchCV 我正在尝试优化 DecisionTreeRegressor。我使参数空间越宽,得分越差。

将 min_samples_split 设置为 range(2,10) 会得到 -0.04 的 neg_mean_squared_error。设置为 range(2,5) 时得分为-0.004。

simple_tree =GridSearchCV(tree.DecisionTreeRegressor(random_state=42), n_jobs=4, param_grid={'min_samples_split': range(2, 10)}, scoring='neg_mean_squared_error', cv=10, refit='neg_mean_squared_error')

simple_tree.fit(x_tr,y_tr).score(x_tr,y_tr)

与不那么广泛的网格搜索相比,我希望更广泛的网格搜索获得相等或更高的正分数。

【问题讨论】:

    标签: scikit-learn decision-tree gridsearchcv


    【解决方案1】:

    你是对的,当你有更多参数时,你应该有一个接近 0 的指标。如果你真的每次都比较 same 模型。您提供的代码中并非如此,因为您尚未在决策树中设置random_state 参数。

    DecisionTreeRegressor(random_state = 42)(或任何整数),你应该得到更合理的结果。

    【讨论】:

    • 非常感谢您的评论。我知道修复随机状态将允许代码重现性。您能否解释一下何时不使用固定的 random_state?
    • 不幸的是,这并没有解决它。通过设置 random_state=42 我得到 -0.004 vs -0.04
    • 你是否为这两次尝试重新分配 X_train?
    • 关于你的第一个问题,你需要注意不要过度使用random_state。我建议仅在您想确保可重复性时才使用它,如本例所示
    • 你的意思是通过设置 CV=10 重新分割?是的,我是。
    【解决方案2】:

    使用 simple_tree.best_score_ 给出所有 CV 折叠的平均最佳分数。

    【讨论】:

      猜你喜欢
      • 2019-03-04
      • 2021-05-15
      • 2018-05-22
      • 2020-04-24
      • 2020-05-03
      • 2016-08-09
      • 2019-04-15
      • 2023-04-10
      相关资源
      最近更新 更多