1

我是 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)

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

4

2 回答 2

2

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

DecisionTreeRegressor(random_state = 42)(或任何整数),你应该有更明智的结果。

于 2019-03-30T19:32:21.147 回答
0

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

于 2019-03-31T21:49:27.427 回答