数据挖掘竞赛中常用的ML

ML Recap

Linear Models

  • Logistic Regression
  • SVM

Tree-based Models

  • Decision Tree
  • RF(随机森林)
  • GBDT(梯度提升决策树)

Neural Networks
kNN

使用的机器学习库主要是:scikit-learn、lightGBM和XGBoost

一,随机森林(RF)

1,对随机森林直观的理解

随机森林可以拆成两部分来分析,即“随机”和“森林”。

首先说一下“森林”,其实这个很容易理解,森林:即决策树的集合,也就是说它是由很多决策树模型组成的。

那这么多决策树又是怎么生成的呢?依靠一些随机来生成不同的决策树,主要是为了提高多样性。“随机”主要体现在两个方面:

  • 训练样本集合的随机:每个决策树的训练集都是从总的训练集中随机抽样出一部分来训练的。
  • 特征子集的随机:在每次分割的时候,都是先随机选择一个特征子集,然后在这个特征子集里选择效果最好的特征来进行分割。

如果数据的形式为n_samples*n_features,则上面的两个随机就可以这样理解:前者是行层次的随机,后者是列层次的随机。 RF中每棵树与其他树都是独立的,所以两个有500棵树的RF的预测值的平均和一个含有1000棵树的RF的预测值是几乎一样的。

2,随机森林的优缺点(十分重要)

缺点:

  • 随机森林在较小的数据集上训练不好,因为它无法挑选模式。
  • 随机森林存在可解释性的问题:您无法理解响应与自变量之间的关系。 随机森林是一种预测工具,而不是描述性工具。
  • 训练随机森林花费的时间很长:尤其是当特征中含有标签特征的时候,花费的时间呈指数级增长。H2O.ai这个机器学习平台可以很快的训练RF。
  • 在回归问题的情况下,响应变量的取值范围取决于训练数据集中已有的值。 与线性回归不同,决策树和随机森林不能在训练数据之外取值。

优点:

  • RF以降低方差为主:RF中个体决策树的偏差比较大,但集成很多决策树后,RF的方差会减小,这样可以避免模型的过拟合问题。
  • 当你所关心的是预测,并希望一个快速但肮脏的方法时,随机森林是一个非常好的选择。 你不必担心数据集中的模型假设或线性假设。

随机森林直观的解释

二,梯度提升(GB&GBDT)

梯度提升是一种集成技术,这意味着预测是由一组简单的估计器完成的。 虽然这个理论框架可以创建各种估算器的集合,但实际上我们几乎总是使用GBDT - 对决策树进行梯度提升。但原则上可以使用其他任何估计器代替决策树。
在GB中后面的估计器重点从前面估计器的错误(残差)中学习以此来提升估计效果,有一种残差逼近的思想,这里用损失函数的负梯度表示残差的近似值。

在GBDT中,在相同决策树的前提下,随着每棵树的深度的增加,虽然残差越来越小,但残差也越来越嘈杂。所以一般GBDT中树的深度不能太深一般为6~8。

在实际中,GBDT一般使用较小的学习率($0.01<\eta<0.1$)和较多数量的决策树来得到最好的结果,比赛中常用lightGBM和XGBoost这些已有的工具。

Gradient Boosting这篇文章将GBDT解释得十分清楚,容易理解!
GBDT的参数这篇详细解释了GBDT的各类参数,很清楚!

猜你喜欢

转载自blog.csdn.net/h2026966427/article/details/80052099
今日推荐