小编Jas*_*ler的帖子

在sklearn中使用决策树回归和交叉验证

我是统计方法的新手,所以请原谅任何天真。使用 sklearn 的决策树回归(例如 DecisionTreeRegressor 和 RandomForestRegressor)时,我在理解交叉验证的执行时遇到问题。我的数据集从具有多个预测变量(y = 单个因变量;X = 多个自变量)到具有单个预测变量,并且包含足够的案例 (> 10k)。以下解释适用于所有情况。

使用标准方法对回归量进行拟合和评分时:

dt = DecisionTreeRegressor()
rf = RandomForestRegressor()

dt.fit(X,y)
rf.fit(X,y)

dt_score = dt.score(X,y)
rf_score = rf.score(X,y)
Run Code Online (Sandbox Code Playgroud)

dt_score 和 rf_score 返回有希望的 R 平方值 (> 0.7),但是我知道 DT 的过度拟合特性以及较小程度的 RF 的过度拟合特性。因此,我尝试通过交叉验证(10 倍)对回归量进行评分,以获得更真实的准确性表示:

dt = DecisionTreeRegressor()
rf = RandomForestRegressor()

dt.fit(X,y)
rf.fit(X,y)

dt_scores = cross_val_score(dt, X, y, cv = 10)
rf_scores = cross_val_score(rf, X, y, cv = 10) 

dt_score = round(sum(dt_scores )/len(dt_scores ), 3)
rf_score = round(sum(rf_scores )/len(rf_scores ), 3)
Run Code Online (Sandbox Code Playgroud)

此交叉验证的结果始终返回负值。根据 sklearn 指南,我假设它们是 R …

python regression scikit-learn

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

python ×1

regression ×1

scikit-learn ×1