
【C00104】xgboost分类
经济学
管理科学
新闻传播
计量经济学与因果推断
R
XGBoost 分类模型简介
什么是 XGBoost?
XGBoost (eXtreme Gradient Boosting) 是一个优化的分布式梯度增强库,旨在高效、灵活且便携。它在机器学习竞赛和工业界应用中表现卓越,是处理结构化/表格数据的首选算法之一。
核心原理
XGBoost 基于 Gradient Boosting Decision Tree (GBDT) 框架,通过串行生成一系列弱分类器(通常是 CART 回归树),每一棵树都在修正前一棵树的残差。其核心优势包括:
- 正则化:在目标函数中加入了正则项(L1 和 L2),有效控制模型复杂度,防止过拟合。
- 二阶泰勒展开:利用损失函数的一阶和二阶导数信息,使收敛更快、更精准。
- 缺失值处理:算法内部自动学习出缺失值的默认分裂方向,无需预先填充。
- 并行处理:虽然 boosting 过程是串行的,但在特征粒度上的扫描支持并行计算,极大提升了训练速度。
适用场景
- 二分类问题:如欺诈检测、点击率预测。
- 多分类问题:如图像物体识别、用户意图分类(本代码示例即为此类)。
- 排序问题:如搜索引擎结果排序。
代码逻辑概述
提供的 main.R 脚本执行了以下标准流程:
- 数据预处理:加载数据并将标签数字化,转换为
xgb.DMatrix格式。 - 参数配置:设定目标函数为
multi:softprob(多分类概率),并调整树深、学习率等超参数。 - 模型训练:调用
xgb.train进行迭代训练。 - 预测与评估:输出预测类别并计算准确率。
- 特征分析:提取并打印特征重要性,帮助理解哪些变量对分类贡献最大。