【问题标题】:Using xgboost in BaggingRegressor在 BaggingRegressor 中使用 xgboost
【发布时间】:2019-09-19 21:41:42
【问题描述】:

我需要在BaggingRegressor 中运行xgboost,我使用xgboost

import xgboost

D_train = xgboost.DMatrix(X_train, lab_train)
D_val = xgboost.DMatrix(X_train[test_index], lab_train[test_index])
D_pred =xgboost.DMatrix( X_train[test_index])
D_test = xgboost.DMatrix(X_test)
D_ttest = xgboost.DMatrix(ttest)


xgb_params = dict()
xgb_params["objective"] = "reg:linear"
xgb_params["eta"] = 0.01
xgb_params["min_child_weight"] = 6
xgb_params["subsample"] = 0.7
xgb_params["colsample_bytree"] = 0.6
xgb_params["scale_pos_weight"] = 0.8
xgb_params["silent"] = 1
xgb_params["max_depth"] = 10
xgb_params["max_delta_step"]=2
watchlist = [(D_train, 'train')]
xg = xgboost.Booster()

print('1000')
model = xgboost.train(params=xgb_params, dtrain=D_train, num_boost_round=1000, 
                      evals=watchlist, verbose_eval=1, early_stopping_rounds=20)

y_pred1 = model.predict(D_ttest)

如何使用所有相同的参数,但在BaggingRegressor

如果我这样做

gdr = BaggingRegressor(base_estimator= xgboost.train( params=xgb_params,
dtrain=D_train,
num_boost_round=3000,
evals=watchlist,
verbose_eval=1,
early_stopping_rounds=20))

然后xgboost训练开始,然后是代码

gdr_model = gdr
print(gdr_model)
gdr_model.fit(X_train, lab_train)
train_pred = gdr_model.predict(X_test)

print('mse from log: ', mean_squared_error(lab_train, train_pred))

train_pred = gdr_model.predict(ttest)

没有意义,还是我错了?告诉我如何解决这个问题

【问题讨论】:

    标签: python scikit-learn regression xgboost


    【解决方案1】:

    Xgboost 有一个 Sklearn 包装器。尝试使用以下模板!

    import xgboost
    from sklearn.datasets import load_boston
    from xgboost.sklearn import XGBRegressor
    from sklearn.ensemble import BaggingRegressor
    
    X,y = load_boston(return_X_y=True)
    
    reg = BaggingRegressor(base_estimator=XGBRegressor())
    
    reg.fit(X,y)
    

    【讨论】:

    • 也就是说,在xgboost和XGBRegressor有没有区别?第二个只是一个外壳,对吧?
    • 是的,Xbgoost 和 XGBRegressor 是一样的。你能详细说明你的第二个问题吗?没看懂
    • 漫不经心地看了答案,你已经回答了第二个问题“Xgboost has a Sklearn wrapper”。
    猜你喜欢
    • 2020-06-19
    • 2018-11-09
    • 1970-01-01
    • 2018-05-30
    • 2016-07-05
    • 2019-11-05
    • 1970-01-01
    • 1970-01-01
    • 2022-06-28
    相关资源
    最近更新 更多