关于机器学习:机器学习集成学习GBDT

42次阅读

共计 1656 个字符,预计需要花费 5 分钟才能阅读完成。

前言

​ GBDT(Gradient Boosting Decision Trees)是一种基于决策树的集成学习算法,它通过逐渐地训练多个决策树模型来进步预测性能。具体来说,GBDT 采纳加法模型(additive model)的思维,每次训练一个新的决策树来拟合残差(预测误差),而后将所有决策树的预测后果相加作为最终的预测值。

一、原理

​ 具体来说,GBDT 算法采纳加法模型的思维,行将每个模型的预测后果相加来失去最终的预测后果。在每一轮迭代中,GBDT 算法会依据以后模型的预测后果计算出残差,而后应用残差作为指标变量从新训练一个决策树。多轮迭代之后,所有的决策树的预测后果相加就能够失去最终的预测后果。

具体实现流程:

  1. 初始化模型:将所有样本的实在值作为初始预测值。
  2. 对于每一轮迭代:

    a. 计算以后模型的预测值。

    b. 计算以后模型的残差。

    c. 依据残差训练一个新的决策树模型。

    d. 计算新模型的预测后果,并将其与之前所有模型的预测后果相加失去最终的预测后果。

  3. 返回最终的预测后果。

二、优缺点

  • 长处:
  1. 高准确性:GBDT 可能失去十分高的准确性,在许多机器学习问题中体现良好。
  2. 鲁棒性:GBDT 对于输出数据的异样值和噪声具备很强的鲁棒
  3. 解决缺失值和高维特色:GBDT 算法可能很好地解决缺失值和高维特色,这是因为决策树能够依据特色的取值将样本分成不同的子集,从而防止了对缺失值的解决。
  4. 解释性:GBDT 算法生成的决策树具备很好的可解释性,能够帮忙咱们了解模型的决策过程。
  • 毛病:
  1. 计算工夫长:GBDT 须要训练多个决策树模型,并且每一轮迭代都须要计算梯度和 Hessian 矩阵,因而训练工夫较长。
  2. 容易过拟合:GBDT 容易过拟合,特地是在训练集的噪声较大或者数据量较小的状况下,须要进行一些正则化解决。

三、理论利用

  1. 排序:学习排序模型,比方搜索引擎中的网页排序、广告举荐零碎中的广告排序等。
  2. 回归:回归问题,比方房价预测、股票价格预测等。
  3. 分类:分类问题,比方垃圾邮件分类、用户行为剖析等。
  4. 举荐零碎:用于举荐零碎,比方基于用户历史行为数据和商品属性数据来预测用户对商品的偏好水平。

四、常见的 GBDT 变体

  1. XGBoost:eXtreme Gradient Boosting(XGBoost)是 GBDT 算法的一种扩大,它在原始 GBDT 算法的根底上增加了正则化项和自定义损失函数,进步了模型的泛化性能和精度,特地实用于解决大规模数据集和高维特色。
  2. LightGBM:LightGBM 是一种基于决策树的梯度晋升框架,它采纳基于直方图的决策树算法和多线程并行计算,具备更快的训练速度和更低的内存占用,特地实用于大规模数据集。
  3. CatBoost:CatBoost 是一种基于决策树的梯度晋升框架,它采纳对称二叉树构造和分类变量特色解决技术,可能自适应地学习特色交互关系,进步模型的准确性和泛化性能,特地实用于解决具备大量分类特色的数据集

五、代码

应用 python 和 Scikit-learn 库

from sklearn.ensemble import GradientBoostingClassifier

# 创立 GBDT 分类器模型
gbdt = GradientBoostingClassifier(loss='deviance', learning_rate=0.1, n_estimators=100, max_depth=3)

# 训练模型
gbdt.fit(X_train, y_train)

# 应用模型进行预测
y_pred = gbdt.predict(X_test)

# 评估模型性能
accuracy = gbdt.score(X_test, y_test)

留神:在理论利用中,咱们须要对数据进行预处理、特色工程等步骤,并应用穿插验证等技术来评估模型性能,咱们也能够应用其余 GBDT 库或本人实现 GBDT 算法,以满足不同的利用需要。

六、总结

GBDT 算法尽管可能自适应地学习特色交互关系,但它依然须要依赖人工抉择或结构特色。在理论利用中,咱们须要联合特色工程技术来提取更有用的特色,从而进一步提高模型的性能。后续文章我也会写到这几种变体。

正文完
 0