GBDT二分类
算法介绍
GBDT(Gradient Boosting Decision Tree)算法是一种基于决策树集成的机器学习算法。该算法由多棵决策树组成,每棵树负责解决一个子问题,最终通过合并所有树的结果来获得预测结果。其中,每棵树都根据前一棵树的残差进行训练,以使最终的预测结果逐步趋近于真实值。
使用场景
适用于小规模数据集,可处理非线性关系的特征,在二分类问题中表现较好。
优势介绍
- 准确度较高;
- 能够处理非线性关系的特征,自动处理缺失值;
- 在建模时,不需要较多的特征筛选、变量重要性分析等。
- 劣势介绍
- 模型训练过程较慢;
- 可能导致过拟合;
- 无法并行处理大规模数据。
参数介绍
仅支持通过可视化方式,配置读取该组件参数,参数详情如下表所示:
页签 | 参数 | 参数名称 | 是否必选 | 参数描述 | 默认值 |
---|---|---|---|---|---|
数据源 | 表名 | inputTable | 是 | 数据表 | 无 |
默认参数 | 选择特征标签列 | labelColName | 是 | 输入表中作为标签的列 | 无 |
模型参数 | 选择损失函数 | loss | 是 | 损失函数,包括deviance(对数似然)和exponential(指数损失)。 | deviance |
模型参数 | 最大弱学习器个数 | n_estimators | 是 | 最大弱学习器个数,调参时要注意过拟合或欠拟合,一般和learning_rate一起考虑。 | 100 |
模型参数 | 学习率步长 | learning_rate | 是 | 每个弱学习器的权重缩减系数,取值范围0-1,当取值为1时,相当于权重不缩减。较小的learning_rate相当于更多的迭代次数。 | 0.1 |
模型参数 | 子采样 | subsample | 是 | 取值范围(0,1],当取值为1,相当于无采样。小于1,按比例采样,得到的样本去构建弱学习器。 | 1 |
调优参数 | 树分裂时考虑的最大特征数 | max_features | 是 | 树分裂时考虑的最大特征数,默认为None,也就是考虑所有特征。可以取值有:log2,auto,sqrt。 | None |
调优参数 | CART最大深度 | max_depth | 是 | CART最大深度 | 10 |
调优参数 | 划分节点时需要保留的样本数 | min_samples_split | 是 | 当某节点的样本数小于某个值时,就当做叶子节点,不允许再分裂。默认是2。 | 2 |
调优参数 | 叶子节点最少样本数 | min_samples_leaf | 是 | 如果某个叶子节点数量少于某个值,会同它的兄弟节点一起被剪枝。默认是1。 | 1 |
调优参数 | 叶子节点最小的样本权重和 | min_weight_fraction_leaf | 是 | 如果小于某个值,会同其兄弟节点一起被剪枝。一般用于权重变化的样本。默认是0。 | 0 |
- 推荐参数值
- 树的数量:建议在100-1000之间选择;
- 决策树深度:根据实际情况选定,一般为3-8;
- 学习率:0.05-0.2较为合适;
- 叶节点最小样本数:5-20。
- 调参建议
- 增大样本量来有效减小过拟合现象,可通过K折交叉验证实现;
- 采用特征选择来消除冗余特征;
- 通过减小学习率来降低预测偏差;
- 调整决策树的最大深度和叶节点最小样本数。