当前位置:网站首页 > 职业技能提升 > 正文

梯度提升树回归(梯度提升模型)



参考:

scikit-learn基于梯度提升树算法提供了两个模型:

  1. GradientBoostingClassifier即GBDT(Gradient Boosting Decision Tree)梯度提升决策树,用于分类问题
  2. GradientBoostingRegressor即GBRT(Gradient Boost Regression Tree)渐进梯度回归树,用于回归问题

梯度提升决策树

参数含义:

1、loss:损失函数

  • loss='deviance',默认值,此时的损失函数与逻辑回归的损失函数相同,为对数损失:L(Y,P(Y|X))=-logP(Y|X)。
  • loss='exponential',损失函数为指数损失函数。

2、learning_rate:float, optional (default=0.1)。学习率,在learning_rate和n_estimators之间需要权衡。通常学习率越小,需要的基本分类器就越多,因此在learning_rate和n_estimators之间要有所折中。

3、n_estimators:int (default=100),指定基本决策树的数量。梯度提升对过拟合有很好的鲁棒性,因此该值越大,性能越好。

4、subsample:float, optional (default=1.0)

  • 用于拟合个体基本学习器的样本数量。如果小于1.0,模型将会变成随机梯度提升决策树。
  • 如果subsample<1.0,此时会减少方差,提高偏差

5、criterion:string, optional (default="friedman_mse"),评估节点分裂的质量指标。

6、min_samplses_split:int, float, optional (default=2),表示分裂一个内部节点需要的最少样本数。

  • 如果为整数,则min_samples_split就是最少样本数。
  • 如果为浮点数(0到1之间),则每次分裂最少样本数为ceil(min_samples_split * n_samples)

7、min_samples_leaf:int, float, optional (default=1),叶子节点最少样本数

  • 如果为整数,则min_samples_split就是最少样本数。
  • 如果为浮点数(0到1之间),则每个叶子节点最少样本数为ceil(min_samples_leaf * n_samples)

8、min_weight_fraction_leaf:float, optional (default=0.),指定叶子节点中样本的最小权重。

9、max_depth:integer, optional (default=3),指定每个基本决策树的最大深度。最大深度限制了决策树中的节点数量。调整这个参数可以获得更好的性能。

10、min_impurity_decrease:float, optional (default=0.)

11、min_impurity_split:树生长过程中停止的阈值。如果当前节点的不纯度高于阈值,节点将分裂,否则它是叶子节点。这个参数已经被弃用。用min_impurity_decrease代替了min_impurity_split。

12、init:BaseEstimator, None, optional (default=None),一个基本分类器对象或者None,该分类器对象用于执行初始的预测。如果为None,则使用loss.init_estimator

13、random_state:int, RandomState instance or None, optional (default=None)

  • 如果为整数,则它指定了随机数生成器的种子。
  • 如果为RandomState实例,则指定了随机数生成器。
  • 如果为None,则使用默认的随机数生成器。
  1. 如果为整数,每次分裂只考虑max_features个特征
  2. 如果为浮点数(0到1之间),每次切分只考虑int(max_features * n_features)个特征。
  3. 如果为'auto'或者'sqrt',则每次切分只考虑sqrt(n_features)个特征
  4. 如果为'log2',则每次切分只考虑log2(n_features)个特征。
  5. 如果为None,则每次切分考虑n_features个特征。
  6. 如果已经考虑了max_features个特征,但还是没有找到一个有效的切分,那么还会继续寻找下一个特征,直到找到一个有效的切分为止。
  7. 如果max_features < n_features,则会减少方差,增加偏差。

15、verbose:int, default: 0,如果为0则不输出日志信息,如果为1则每隔一段时间打印一次日志信息。

16、max_leaf_nodes:int or None, optional (default=None),指定每颗决策树的叶子节点的最大数量。

  • 如果为None,则叶子节点数量不限。
  • 如果不为None,则max_depth被忽略。

17、warm_start:bool, default: False,当为True时,则继续使用上一次训练的结果,增加更多的estimators来集成。

18、presort:bool or 'auto', optional (default='auto'),在训练过程中,是否预排序数据加速寻找最佳划分。

属性:

  1. feature_importances_:数组,给出每个特征的重要性。
  2. oob_improvement_:array, shape = [n_estimators],数组,给出了每增加一颗基本决策树,在包外估计(即测试集上)的损失函数的改善情况(相对于上一轮迭代),即损失函数的减少值。
  3. train_score_:数组,给出每增加一颗基本决策树,在训练集上的损失函数的值。
  4. init:初始预测使用的分类器。
  5. estimators_:数组,给出每棵基础决策树。

方法:

  1. fit():训练模型
  2. predict():模型预测
  3. predict_log_proba():数组,预测各个类别的概率对数值。
  4. predict_proba():数组,预测各个类别的概率值。

渐进梯度回归树

参数含义:

1、loss:{'ls', 'lad', 'huber', 'quantile'}, optional (default='ls'),指定优化的损失函数。

  • loss='ls':损失函数是平方损失函数
  • loss='lad':损失函数为绝对值损失函数
  • loss='huber':损失函数是上边两种损失函数的结合。
到此这篇梯度提升树回归(梯度提升模型)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 梯度提升树回归模型分析(梯度提升树回归模型分析报告)2025-11-08 10:54:06
  • 梯度提升回归算法(梯度提升回归算法通俗易懂)2025-11-08 10:54:06
  • 梯度提升树模型解决分类问题(梯度提升树分类算法)2025-11-08 10:54:06
  • 梯度提升树回归算法(梯度提升树分类算法)2025-11-08 10:54:06
  • 梯度提升模型(梯度提升模型 网格调参)2025-11-08 10:54:06
  • 梯度提升树算法原理(梯度提升算法的理解)2025-11-08 10:54:06
  • 梯度提升树算法流程(梯度提升算法的理解)2025-11-08 10:54:06
  • 梯度提升树原理(梯度提升和梯度下降的区别)2025-11-08 10:54:06
  • 梯度提升树和随机森林哪个好些(随机森林和梯度提升树的区别)2025-11-08 10:54:06
  • 梯度提升和梯度下降(梯度下降和梯度上升)2025-11-08 10:54:06
  • 全屏图片