Nếu tôi huấn luyện mô hình của mình bằng mã sau:
import xgboost as xg
params = {'max_depth':3,
'min_child_weight':10,
'learning_rate':0.3,
'subsample':0.5,
'colsample_bytree':0.6,
'obj':'reg:linear',
'n_estimators':1000,
'eta':0.3}
features = df[feature_columns]
target = df[target_columns]
dmatrix = xg.DMatrix(features.values,
target.values,
feature_names=features.columns.values)
clf = xg.train(params, dmatrix)
nó kết thúc sau khoảng 1 phút
Nếu tôi huấn luyện mô hình của mình bằng phương pháp học Sci-Kit:
import xgboost as xg
max_depth = 3
min_child_weight = 10
subsample = 0.5
colsample_bytree = 0.6
objective = 'reg:linear'
num_estimators = 1000
learning_rate = 0.3
features = df[feature_columns]
target = df[target_columns]
clf = xg.XGBRegressor(max_depth=max_depth,
min_child_weight=min_child_weight,
subsample=subsample,
colsample_bytree=colsample_bytree,
objective=objective,
n_estimators=num_estimators,
learning_rate=learning_rate)
clf.fit(features, target)
phải mất hơn 30 phút.
Tôi sẽ nghĩ rằng mã cơ bản gần như giống hệt nhau (tức là XGBRegressor
các cuộc gọi xg.train
) - chuyện gì đang xảy ra ở đây?