1、集成算法中主要分为bagging算法与boosting算法
Bagging | Boosting |
---|
随机有放回的取样 | 每一轮训练的样本是固定的,改变的是买个样的权重 | 均匀取样,每个样本的权重相同 | 根据错误率调整样本权重,错误率越大的样本权重会变大 | 预测函数权值相同 | 误差越小的预测函数其权值越大 | 各个预测函数可以并行生成 | 各个预测函数必须按照顺序迭代生成 |
2、为什么XGBoot算法这么流行
- 运行速度快且效率及准确率较高
- 使用并行化计算
- 比其他算法强
- 可调节的参数多
3、部分参数含义
- max_depth:树的深度
- subsample:用多少个子样本去训练树
- colsample_bytree:构建每棵树需采用的特征数量
- n_estimators:树的数量
- gamma[默认0]:在节点分裂时,只有分裂后损失函数的值下降了,才会分裂这个节点。Gamma指定了节点分裂所需的最小损失函数下降值。 这个参数的值越大,算法越保守。这个参数的值和损失函数息息相关,所以是需要调整的
- alpha[默认1]:权重的L1正则化项。(和Lassoregression类似)。 可以应用在很高维度的情况下,使得算法的速度更快。
- lambda[默认1]:权重的L2正则化项。(和Ridgeregression类似)。 这个参数是用来控制XGBoost的正则化部分的。虽然大部分数据科学家很少用到这个参数,但是这个参数在减少过拟合上还是可以挖掘出更多用处的。
- objective[默认reg:linear]:这个参数定义需要被最小化的损失函数。最常用的值有:
binary:logistic binary:logitraw
|