• xgboost学习


    1、原理

    https://www.cnblogs.com/zhouxiaohui888/p/6008368.html

    2、实战

    xgboost中比较重要的参数介绍:

    (1)学习率:learning rate :一般设置比较低,0.1以下

    (2)tree:

    max_depth

    min_child_weight

    subsample

    colsample_bytree

    gamma

    (3)正则化参数

    lambda

    alpha

    (1)objective [ default=reg:linear ] 定义学习任务及相应的学习目标,可选的目标函数如下:

    • “reg:linear” –线性回归。
    • “reg:logistic” –逻辑回归。
    • “binary:logistic” –二分类的逻辑回归问题,输出为概率。
    • “binary:logitraw” –二分类的逻辑回归问题,输出的结果为wTx。
    • “count:poisson” –计数问题的poisson回归,输出结果为poisson分布。 在poisson回归中,max_delta_step的缺省值为0.7。(used to safeguard optimization)
    • “multi:softmax” –让XGBoost采用softmax目标函数处理多分类问题,同时需要设置参数num_class(类别个数)
    • “multi:softprob” –和softmax一样,但是输出的是ndata * nclass的向量,可以将该向量reshape成ndata行nclass列的矩阵。没行数据表示样本所属于每个类别的概率。
    • “rank:pairwise” –set XGBoost to do ranking task by minimizing the pairwise loss

    (2)’eval_metric’ The choices are listed below,评估指标:

    • “rmse”: root mean square error
    • “logloss”: negative log-likelihood
    • “error”: Binary classification error rate. It is calculated as #(wrong cases)/#(all cases). For the predictions, the evaluation will regard the instances with prediction value larger than 0.5 as positive instances, and the others as negative instances.
    • “merror”: Multiclass classification error rate. It is calculated as #(wrong cases)/#(all cases).
    • “mlogloss”: Multiclass logloss
    • “auc”: Area under the curve for ranking evaluation.
    • “ndcg”:Normalized Discounted Cumulative Gain
    • “map”:Mean average precision
    • “ndcg@n”,”map@n”: n can be assigned as an integer to cut off the top positions in the lists for evaluation.
    • “ndcg-“,”map-“,”ndcg@n-“,”map@n-“: In XGBoost, NDCG and MAP will evaluate the score of a list without any positive samples as 1. By adding “-” in the evaluation metric XGBoost will evaluate these score as 0 to be consistent under some conditions.

    (3)lambda [default=0] L2 正则的惩罚系数

    (4)alpha [default=0] L1 正则的惩罚系数

    (5)lambda_bias 在偏置上的L2正则。缺省值为0(在L1上没有偏置项的正则,因为L1时偏置不重要)

    (6)eta [default=0.3] 
    为了防止过拟合,更新过程中用到的收缩步长。在每次提升计算之后,算法会直接获得新特征的权重。 eta通过缩减特征的权重使提升计算过程更加保守。缺省值为0.3 
    取值范围为:[0,1]

    (7)max_depth [default=6] 数的最大深度。缺省值为6 ,取值范围为:[1,∞]

    (8)min_child_weight [default=1] 
    孩子节点中最小的样本权重和。如果一个叶子节点的样本权重和小于min_child_weight则拆分过程结束。在现行回归模型中,这个参数是指建立每个模型所需要的最小样本数。该成熟越大算法越conservative 
    取值范围为: [0,∞]

    xgb1=XGBClassifier(
    learning_rate=0.1,
    n_estimators=1000,
    max_depth=5,
    min_child_weight=1,
    gamma=0,
    subsample=0.8
    colsample_bytree=0.8,
    objective='binary:logistic',
    nthread=4,
    scale_pos_weight=1,
    seed=27)

    3、xgboost重要模块:plot_importance【显示特征的重要性】

    from xgboost import XGBClassifier
    from xgboost import plot_importance
    from matplotlib import pyplot
    
    model=XGBClassifier()
    model.fit(X,Y)
    plot_importance(model)
    pyplot.show()
    #图中就可以显示出各种特征的重要性
  • 相关阅读:
    mysql表分区
    .NET面试题
    .NET中CORS跨域访问WebApi
    一些VS2013的使用技巧(转载)
    java enum(枚举)使用详解 + 总结(转载)
    java枚举类型(转载)
    解析oracle的rownum,数据库查询结果返回行数设置
    使用jquery-qrcode生成二维码(转载)
    Spring 之注解事务 @Transactional(转载)
    spring @Transactional注解参数详解(转载)
  • 原文地址:https://www.cnblogs.com/Lee-yl/p/9248664.html
Copyright © 2020-2023  润新知