• scikit-learn的梯度提升算法(Gradient Boosting)使用


    前言:本文的目的是记录sklearn包中GBRT的使用,主要是官网各参数的意义;对于理论部分和实际的使用希望在只是给出出处,希望之后有时间能补充完整

    摘要:

      1.示例

      2.模型主要参数

      3.模型主要属性变量

    内容:

    1.示例
    >>> import numpy as np
    >>> from sklearn.metrics import mean_squared_error
    >>> from sklearn.datasets import make_friedman1
    >>> from sklearn.ensemble import GradientBoostingRegressor

    >>> X, y = make_friedman1(n_samples=1200, random_state=0, noise=1.0)
    >>> X_train, X_test = X[:200], X[200:]
    >>> y_train, y_test = y[:200], y[200:]
    >>> est = GradientBoostingRegressor(n_estimators=100, learning_rate=0.1,
    ... max_depth=1, random_state=0, loss='ls').fit(X_train, y_train)
    >>> mean_squared_error(y_test, est.predict(X_test))
    5.00...


    2.模型主要参数
    2.1 n_estimators : int (default=100)
    梯度提升的迭代次数,也是弱分类器的个数
    2.2 loss : {‘ls’, ‘lad’, ‘huber’, ‘quantile’}, optional (default=’ls’)
    损失函数
    2.3 learning_rate : float, optional (default=0.1)
    SGB(随机梯度提升)的步长,也叫学习速度,一般情况下learning_rate越低,n_estimators越大;
    经验表明learning_rate越小,测试误差越小;具体的值参看http://scikit-learn.org/stable/modules/ensemble.html#Regularization
    2.4 max_depth : integer, optional (default=3)
    决策树桩(Decision Stump)的最大深度,预剪枝操作(这里的树深度不包括树根)
    2.5 warm_start : bool, default: False
    如果True,会存储之前的拟合结果,以供增加迭代次数

    3.模型主要属性变量
    3.1 train_score_ : array, shape = [n_estimators]
    存储每次迭代的训练误差
    3.2 feature_importances_ : array, shape = [n_features]
    特征重要性,具体参照:http://scikit-learn.org/stable/modules/ensemble.html#random-forest-feature-importance

      

  • 相关阅读:
    CSS3 字体
    capitalized-comments (Rules) – Eslint 中文开发手册
    heapq (Data Types) – Python 中文开发手册
    Java中的Java.lang.Math类| 1
    shell脚本的条件测试与比较
    centos7关闭防火墙
    vmwaretool安装
    mongodb
    php中0与空 Null false的区别
    git使用总结
  • 原文地址:https://www.cnblogs.com/arachis/p/GBRT.html
Copyright © 2020-2023  润新知