官方文档
我比较喜欢xgboost的sklearn API,在官网页面需要向下拉,拉到sklearnAPI那里。
import xgboost as xgb
model_xgb = xgb.XGBRegressor()
model_xgb = xgb.XGBClassifier()
参数
PART1 无需调试的参数
verbosity取值[0,3],取值越小,训练过程中越“沉默”。
objective 目标函数,XGBOOST支持自定义目标函数,只要能求导以及二阶导即可。
booster 可选gbtree, gblinear 或者 dart
tree_method 默认auto,并没有深入学习过。
n_jobs 可用于训练的cpu数量。
scale_pos_weight 类别权重,用以对抗类别不平衡。
random_state 固定该值可以复现。
missing 默认 np.nan,将数值写成该值即可视为缺失值。
importance_type 提供feature_importance时的依据。
PART2 需要调试的参数
n_estimators 树的数量。
max_depth 每棵树的深度。
learning_rate 学习率。
gamma 和lightgbm的参数名称不一样,实际意义是一样的,新建节点的所带来的的loss减小必须大于该值,否则不再新建该节点。
min_child_weight 一个叶子中的样本数量必须大于该值,否则就会和兄弟节点一起被剪枝。
max_delta_step 暂时不是很懂。
subsample可用样本的比例,注意只能使用浮点数。
colsample_bytree 每棵树可选用样本的比例。
colsample_bylevel 每个level可选用样本的比例。
colsample_bynode 每次拆分节点时,可选用的样本比例。
reg_alpha L1正则化系数
reg_lambda L2正则化系数
base_score 用不到,先不管。
num_parallel_tree 做RF时使用树的数量。
monotone_constraints 先不管。
interaction_constraints 先不管。
方法
fit训练
predict预测
get_booster() 获取基学习器
save_model(fname = ‘’) 保存模型