XGBoost的安装
pip install xgboost
如何使用
clf = XGBClassifier(
learning_rate =0.1, #默认0.3
n_estimators=1000, #树的个数
max_depth=5,
min_child_weight=1,
gamma=0,
subsample=0.8,
colsample_bytree=0.8,
objective= 'binary:logistic', #逻辑回归损失函数
nthread=4, #cpu线程数
scale_pos_weight=1,
seed=27) #随机种子
clf.fit(X_train, y_train)
y_pre= clf.predict(X_test)
y_pro= clf.predict_proba(X_test)[:,1]
参数说明
1. max_depth = 5 :#这个值为树的最大深度。这个值也是用来避免过拟合的。max_depth越大,模型会学到更具体更局部的样本。
需要使用CV函数来进行调优。典型值:3-10
2. min_child_weight = 1:#决定最小叶子节点样本权重和。XGBoost的这个参数是最小样本权重的和,这个参数用于避免过拟合。当它的值较大时,可以避免模型学习到局部的特殊样本。但是如果这个值过高,会导致欠拟合。这个参数需要使用CV来调整。
3. gamma = 0:#在节点分裂时,只有分裂后损失函数的值下降了,才会分裂这个节点。Gamma指定了节点分裂所需的最小损失函数下降值。这个参数的值越大,算法越保守。这个参数的值和损失函数息息相关,所以是需要调整的。
4. subsample:#这个参数控制对于每棵树,随机采样的比例。减小这个参数的值,算法会更加保守,避免过拟合。但是,如果这个值设置得过小,它可能会导致欠拟合。典型值:0.5-1。
5. colsample_bytree:#用来控制每棵随机采样的列数的占比(每一列是一个特征。典型值:0.5-1。
6. scale_pos_weight = 1:#在各类别样本十分不平衡时,把这个参数设定为一个正值,可以使算法更快收敛。