GBDT入门学习

简介: 决策树A decision tree is a machine learning model that builds upon iteratively asking questions to partition data and reach a solution.结点:feature分支:决策叶子:结果痛点:过拟合     即在validation dataset 上表现好,但在test data

决策树

A decision tree is a machine learning model that builds upon iteratively asking questions to partition data and reach a solution.

结点:feature

分支:决策

叶子:结果

痛点:

过拟合     即在validation dataset 上表现好,但在test dataset上表现差

Ensemble Learning集成学习

a model that makes predictions based on a number of different models. 

优点:由于集成不同模型,集成学习更灵活(小偏差),更少的数据敏感(小方差)

两个最流行的集成方法:

  • bagging (并行训) Random Forest : 每个树在随机子集上训练,结果取平均

Training a bunch of models in parallel way. Each model learns from a random subset of the data.

  • boosting (顺序训) GBDT

Training a bunch of models sequentially. Each model learns from the mistakes of the previous model.

GBDT

weak learner : perform only slightly better than a random chance.

每一步的重点是构造出新的weak learner去处理剩余的困难的观测。

gbdt所借鉴的算法:Adaboost

weak learner : decision stumps(Decision stumps are decision trees with only a single split.)并对难分类的实例加权较高,易分类的实例加权较少。

the final result was average of weighted outputs from all individual learners. 结果加权平均

GB算法与之的区别:优化损失函数代替加权平均

it uses a loss function to minimize loss and converge upon a final output value. The loss function optimization is done using gradient descent

GBDT的weak learner:决策树

优点:准确度较高

缺点:由于串行的方式,学习速度缓慢

检测residual残差:a loss function

  • mse : 回归
  • log loss : 分类

超参

  • Learning rate:每次对已有模型修改的大小由学习率控制
  • n_estimators:使用的树的数量 使用太多树容易过拟合

GBDT对超参很敏感,而随机森林,树多了,则不会过拟合,因为其是并行的方式

对GBDT过拟合的改进方法:

  • 随机梯度下降:子采样
  • 小的学习率:0.1~0.3
  • 正则化
  • 树约束:
  • 树的数量
  • 树的深度:4-8
  • 每层的最小损失提升
  • 没个划分的观测数量 即样本数

参考:

相关文章
|
机器学习/深度学习 算法 数据挖掘
机器学习集成学习进阶Xgboost算法原理
机器学习集成学习进阶Xgboost算法原理
126 0
|
机器学习/深度学习 算法 API
机器学习SVM算法入门
机器学习SVM算法入门
90 0
|
1月前
|
机器学习/深度学习 算法
机器学习入门(三):K近邻算法原理 | KNN算法原理
机器学习入门(三):K近邻算法原理 | KNN算法原理
|
机器学习/深度学习 存储 算法
机器学习面试笔试知识点-决策树、随机森林、梯度提升决策树(GBDT)、XGBoost、LightGBM、CatBoost
机器学习面试笔试知识点-决策树、随机森林、梯度提升决策树(GBDT)、XGBoost、LightGBM、CatBoost
532 0
|
4月前
|
数据采集 机器学习/深度学习 大数据
基于Python实现xgboost回归模型(XGBRegressor)项目实战
基于Python实现xgboost回归模型(XGBRegressor)项目实战
545 1
|
4月前
|
数据采集 机器学习/深度学习 算法
Python实现LightGBM回归模型(LGBMRegressor算法)项目实战
Python实现LightGBM回归模型(LGBMRegressor算法)项目实战
199 0
|
4月前
|
机器学习/深度学习 数据采集 算法
Python实现随机森林回归模型(RandomForestRegressor算法)项目实战
Python实现随机森林回归模型(RandomForestRegressor算法)项目实战
254 0
|
6月前
|
机器学习/深度学习 算法 前端开发
【Python机器学习专栏】集成学习中的Bagging与Boosting
【4月更文挑战第30天】本文介绍了集成学习中的两种主要策略:Bagging和Boosting。Bagging通过自助采样构建多个基学习器并以投票或平均法集成,降低模型方差,增强稳定性。在Python中可使用`BaggingClassifier`实现。而Boosting是串行学习,不断调整基学习器权重以优化拟合,适合弱学习器。Python中可利用`AdaBoostClassifier`等实现。示例代码展示了如何在实践中运用这两种方法。
138 0
|
6月前
|
机器学习/深度学习 算法 前端开发
Scikit-learn进阶:探索集成学习算法
【4月更文挑战第17天】本文介绍了Scikit-learn中的集成学习算法,包括Bagging(如RandomForest)、Boosting(AdaBoost、GradientBoosting)和Stacking。通过结合多个学习器,集成学习能提高模型性能,减少偏差和方差。文中展示了如何使用Scikit-learn实现这些算法,并提供示例代码,帮助读者理解和应用集成学习提升模型预测准确性。
|
机器学习/深度学习 算法 Python
学习笔记: 机器学习经典算法-kNN(k近邻算法)
机器学习经典算法-个人笔记和学习心得分享
127 0