版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/JN_rainbow/article/details/89194166
算法思想就是不断地添加树,不断地进行特征分裂来生长一棵树,每次添加一个树,其实是学习一个新函数,去拟合上次预测的残差。当我们训练完成得到k棵树,我们要预测一个样本的分数,其实就是根据这个样本的特征,在每棵树中会落到对应的一个叶子节点,每个叶子节点就对应一个分数,最后只需要将每棵树对应的分数加起来就是该样本的预测值.
对于分类问题,常用的损失函数为logloss.
对于回归问题,常用的损失函数为MSE、MAE.
xgboost处理缺失值的方法和其他树模型不同。xgboost把缺失值当做稀疏矩阵来对待,本身在节点分裂时不考虑缺失值的数值,但确定分裂的特征后,缺失值数据处理策略是落在哪个子结点得分高,就放到哪里。如果训练中没有数据缺失,预测时出现了数据缺失,那么默认被分类到右子树。
回归问题和分类问题都可,且能够处理有缺失值的数据.
参数 | 类型 | 默认值 | 作用 |
---|---|---|---|
loss | {‘deviance’, ‘exponential’} | ‘deviance’ | 损失函数 |
learning_rate | float | 0.1 | 学习率,即每个学习器的权重 |
n_estimators | int | 100 | 树的棵树 |
criterion | str | ‘friedman_mse’ | 分裂算法 |
max_depth | int or None | None | 决策树最大深度 |
n_iter_no_change | int or None | None | 早停轮数 |
tol | float | 1e-4 | 早停阈值 |
validation_fraction | float | 0.1 | 早停验证比例 |
min_samples_split | int or float | 2 | 分裂时最小样本数 |
min_samples_leaf | int or float | 1 | 叶节点最小样本数 |
min_weight_fraction_leaf | float | 0 | 叶节点最小样本权重总值 |
max_features | int float str None | ‘auto’ | 切分时最大的特征数量 |
max_leaf_nodes | int or None | None | 最大叶节点个数 |
min_impurity_decrease | float | 0. | 切分点不纯度最小减少程度,若节点不纯度小于该值,则被移除 |
random_state | int or None | None | 随机种子 |