zoukankan      html  css  js  c++  java
  • xgboost参数及调参

    常规参数General Parameters

    1. booster[default=gbtree]:选择基分类器,可以是:gbtree,gblinear或者dart。gbtree和draf基于树模型,而gblinear基于线性模型。
    2. slient[default=0]:是否有运行信息输出,设置为1则没有运行信息输出。
    3. nthread[default to maximum number of threads available if not set]:线程数,默认使用能使用的最大线程数。

    模型参数Booster Parameters

    1. eta[default=0.3]:收缩参数,也即学习率。用于更新叶节点权重时,乘该系数,避免步长过大。参数值越大,越可能无法收敛。把eta设置的小一些,小的学习率可以使后面的学习更加仔细。
    2. min_child_weight[default=1]:每个叶子里面的h的和至少是多少,这个参数非常影响结果,控制叶子节点中二阶导的和的最小值,该参数越小,越容易过拟合。
    3. max_depth[default=6]:每棵树的最大深度,该参数设置越大,越容易过拟合。
    4. max_leaf_nodes:最大叶节点数,和max_depth类似。
    5. gamma[default=0]:后剪枝时,用于控制是否后剪枝。
    6. max_delta_step[default=0]:该参数可以使得更新更加平缓,如果取0表示没有约束,如果取正值则使得更新步骤更加保守,防止更新时迈的步子太大。
    7. subsample[default=1]:样本随机样本,该参数越大,越容易过拟合,但设置过大也会造成过拟合。
    8. colsample_bytree[default=1]:列采样,对每棵树生成时用的特征进行列采样,一般设置为0.5-1
    9. lambda[default=1]:模型的L2正则化参数,参数越大,越不容易过拟合。
    10. alpha[default=0]:模型的L1正则化参数,参数越大,越不容易过拟合。
    11. scale_pos_weight[default=1]:如果取值大于0,在类别样本偏斜时,有助于快速收敛。

    学习任务参数(Learning Task Parameters)

    1. objective[default=reg:linear]:定义最小化损失函数类型,常用参数:
    • binary:logistic –二元分类的逻辑回归模型,返回预测概率(p(y=1|x,w))
    • multi:softmax –使用softmax objective的多类分类模型,返回预测的分类。这里需要设置一个额外的num_class参数,表示类的个数。
    • multi:softprob –与softmax相同,但是返回每个数据点属于每个类的预测概率。
    1. eval_metric[default according to objective]:用于衡量验证数据的参数,即是各评价标准,常用参数如下:
    • rmse – root mean square error
    • mae – mean absolute error
    • logloss – negative log-likelihood
    • error – Binary classification error rate (0.5 threshold)
    • merror – Multiclass classification error rate
    • mlogloss – Multiclass logloss
    • auc: Area under the curve
    1. seed[default=0]:随机种子,用于产生可复现的结果。
      这里,xgboost与sklearn的命名风格有点区别,如:
    • eta->learning_rate
    • lambda->reg_lambda
    • alpha->reg_alpha

    参数调优

    1. import必要的库

       #Import libraries:
       import pandas as pd
       import numpy as np
       import xgboost as xgb
       from xgboost.sklearn import XGBClassifier
       from sklearn import cross_validation, metrics   #Additional     scklearn functions
       from sklearn.grid_search import GridSearchCV   #Perforing grid search
      
       import matplotlib.pylab as plt
       %matplotlib inline
       from matplotlib.pylab import rcParams
       rcParams['figure.figsize'] = 12, 4
      
       train = pd.read_csv('train_modified.csv')
       target = 'Disbursed'
       IDcol = 'ID'
      

    注意,这里import两种XGBoost:

  • 相关阅读:
    Best Time to Buy and Sell Stock
    Remove Nth Node From End of List
    Unique Paths
    Swap Nodes in Pairs
    Convert Sorted Array to Binary Search Tree
    Populating Next Right Pointers in Each Node
    Maximum Subarray
    Climbing Stairs
    Unique Binary Search Trees
    Remove Duplicates from Sorted Array
  • 原文地址:https://www.cnblogs.com/mengnan/p/9307632.html
Copyright © 2011-2022 走看看