⑴ XGBoost原理及常用参数(复习自用)
XGBoost全称为eXtreme Gradient Boosting,是基于梯度提升树实现的集成算法。核心在于构建多个不同模型,汇总预测结果以提升整体性能,要求每个单独模型预测准确率不低于50%。有两种调用方式:一是使用xgboost库,需先设定参数集,再进行训练;二是通过sklearn API中的类XGBRegressor,二者效果相似,但xgboost库在交叉验证与调参上更为简便,建议直接调用xgboost库。
集成算法通过构建多个模型汇总结果以提升效果,分为两种:梯度提升树(Gradient Boosting)是基础,适合回归与分类,且树均为二叉结构。XGBoost在此基础上拓展,允许选择多种算法与功能,通过调节参数实现。
### 参数概览
**集成算法板块**:核心是决策树,梯度提升回归树(GBDT)与极限梯度提升树(XGBoost)的主要区别在于预测值的计算方法。
**迭代次数/树的棵树(n_estimators)**:增加此参数提升模型学习能力,但也易过拟合。通过绘制学习曲线,找到最佳的n_estimators值,平衡模型的学习与泛化能力。
**打印建树过程(slient)**:在大规模数据集上运行时使用,监控模型训练进度。
**有放回随机抽样(subsample)**:防止过拟合,确保每个弱分类器模型的差异性。
**迭代决策树(eta)**:控制迭代速度与模型复杂度。大的η加速迭代,但可能无法收敛至最优解;小的η更可能找到精确解,但迭代速度慢。
### 弱评估器板块
**弱评估器选择(booster)**:XGBoost基础为决策树,也可选择线性模型。
**目标函数(objective)**:允许自定义损失函数,结合传统损失函数与模型复杂度,旨在平衡错误率与复杂度。
**正则项(alpha & lambda)**:通过惩罚项控制树模型的复杂度,减少过拟合,参数调整有助于控制模型复杂度。
**复杂性控制(gamma)**:通过惩罚增加的叶子数,控制模型复杂度与过拟合。
### 其他参数
**剪枝参数**:如max_depth、gamma,减轻过拟合,控制树结构。
**分类样本不均衡问题**:通过scale_pos_weight调节样本权重,平衡不同类别的影响。
**概率预测与参数调校**:scale_pos_weight影响模型预测概率,适用于关注预测准确率、AUC或召回率等场合,但需保持概率模型原始特性。
### 总结
XGBoost是集大成的模型,能够通过参数调整与优化实现高效学习与泛化。选择参数时,需考虑方差与偏差平衡、模型复杂度控制与过拟合风险,同时利用交叉验证与网格搜索等技术辅助调参。在调参过程中,应关注模型在测试集上的表现,以确保模型泛化能力的提升。此外,XGBoost的调用方式与参数调整策略也体现了其在集成学习中的灵活性与高效性。
⑵ 查看图片时图像为什么可以放大缩小,什么原理,放大查看或缩小查看,图像的像素有没有变化
放大缩小只是对图片的一个副本进行操作的,原始图片不会变