【发布时间】:2022-06-28 00:39:07
【问题描述】:
我正在使用 xgboost 来拟合具有 2 个特征的数据。我已将“max_depth”设置为 30,但我得到了一棵深度为 11 的树。与 BP-net 相比,深度为 11 的树与数据不匹配。
df_new = pd.DataFrame()
df_new['ua'] = df['ua_norm']
df_new['va'] = df['va_norm']
df_new['pow'] = df['pow_unit_cap_norm']
param_grid = {"n_estimators": [1],
'max_depth': [30],
'colsample_bytree': [1.0],
"alpha": [10]
}
grid_search = GridSearchCV(
xgb.XGBRegressor(),
param_grid,
cv=3,
n_jobs=3,
verbose=3,
scoring='neg_mean_squared_error',
return_train_score=True
)
grid_search.fit(np.array(df_new[['ua', 'va']]), np.array(df_new['pow']))
model = grid_search.best_estimator_
model.get_booster().feature_names = ['ua', 'va']
tree_df = model.get_booster().trees_to_dataframe()
tree_df.to_csv('tree.csv', index=False)
scr = xgb.to_graphviz(model, num_trees=0)
# src.format = "jpg"
scr.view("./tree")
【问题讨论】:
标签: parameters xgboost