from xgboost.sklearn import XGBClassifier
model=XGBClassifier(base_score=0.5, booster='gbtree', colsample_bylevel=1,
colsample_bytree=1, gamma=0, learning_rate=0.1, max_delta_step=0,
max_depth=3, min_child_weight=1, missing=None, n_estimators=100,
n_jobs=1, nthread=None, objective='binary:logistic', random_state=0,
reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=None,
silent=True, subsample=1)

1、通用参数(控制Xgboost的宏观功能)

booster: [default=gbtree]

  • gbtree: tree-based models,树模型做为基分类器
  • gblinear: linear models,线性模型做为基分类器

silent:[default=True]

  • silent=True时,不输出中间过程(默认)
  • silent=Flase时,输出中间过程

nthread:[default=None]

  • 主要用于并行计算,系统的内核数需要作为变量。如果希望运行所有的内核,就不需要设置该参数,程序会自己检测到该值。

n_jobs:[default=1]

  • 线程数目

2、Booster参数(控制每一步的Booster(tree\regression))

有两种booster可以选择,但是tree booster的效果比 linear booster效果好太多,因此linear booster很少用到。

learning_rate:[default=0.1]

  • 原名eta,学习率,控制每次迭代更新权重时的步长。值越小,训练的越慢。取值范围:[0,1]。典型值为0.01~0.2

n_estimators:[default=100]

  • 估计器的数量

min_child_weight:[default=1]

  • 拆分节点权重和阈值
  • 如果节点的样本权重和小于该阈值,就不再进行拆分。在线性回归模型中,这个是指建立每个模型所需要的最小样本数。
  • 值越大,算法越保守。取值范围为:[0,∞]
  • 用于防止过拟合问题:较大的值能防止过拟合,过大的值会导致欠拟合问题
  • 需要通过CV调参

max_depth:[default=3]

  • 每个基本学习器树的最大深度,用于防止过拟合问题。通过CV调参。典型值:3~10

gamma:[default=0]

  • 损失阈值,在树的一个叶节点上进一步分裂所需的最小损失减少量,gamma值越大,算法越保守。取值范围为:[0,∞]

max_delta_step:[default=0]

  • 每棵树的最大权重估计。如果它的值被设置为0,意味着没有约束;如果它被设置为一个正值,能够权重的变化将会变得相对保守。通常这个参数不会被使用,但如果是极度不平衡的逻辑回归将会有所帮助。把它范围设置为1-10之间也许能控制更新。 取值范围为:[0,∞]

subsample:[default=1]

  • 随机选取一定比例的样本来训练树。设置为0.5,则意味着XGBoost将从整个样本集合中随机的抽取出50%子样本建立树模型,这能够防止过拟合。
  • 取值范围为:(0,1]。减小这个参数的值,算法会更加保守,避免过拟合。但是,如果这个值设置得过小,它可能会导致欠拟合。 典型值:0.5-1。

colsample_bytree:[default=1]

  • 指的是每棵树随机选取的特征的比例,取值范围(0,1]。

colsample_bylevel: [default=1]

  • 指的是树的每个层级分裂时子样本的特征所占的比例,这个一般很少用。因为subsample和colsample_bytree组合做的事与之类似。

reg_alpha:[default=0]

  • 权重的L1正则化项(和Lasso regression类似)。这个主要是用在数据维度很高的情况下,可以提高运行速度。

reg_lambda:[default=1]

  • 权重的L2正则化项(和Ridge regression类似)。这个参数是用来控制XGBoost的正则化部分的。虽然大部分数据科学家很少用到这个参数,但是这个参数在减少过拟合上还是可以挖掘出更多用处的。

scale_pos_weight:[default=1]

  • 处理样本不平衡问题。在样本高度不平衡时,将参数设置大于0,可以加快算法收敛。

3、学习目标参数

objective:指的是需要被最小化的损失函数。

  • “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”   采用softmax目标函数处理多分类问题,需要多设置一个参数num_class(类别个数),返回预测的类别(不是概率)。
  • “multi:softprob”   和multi:softmax参数类似,但是输出结果是每个样本属于各个类别的概率。
  • “rank:pairwise”   set XGBoost to do ranking task by minimizing the pairwise loss

seed:[default=None]

  • 随机数种子,设置它可以复现随机数据的结果,也可以用于调整参数。

4、其他

base_score: [default=0.5]

  • 所有实例的初始预测得分,整体偏倚。

missing:[default=None]

  • 在数据中,标注为缺失值的表示。如果为None,则默认为np.nan

random_state:[default=0]

Xgboost的sklearn接口参数说明的更多相关文章

  1. xgboost的sklearn接口和原生接口参数详细说明及调参指点

    from xgboost import XGBClassifier XGBClassifier(max_depth=3,learning_rate=0.1,n_estimators=100,silen ...

  2. xgboost与sklearn的接口

    xgb使用sklearn接口(推荐) XGBClassifier from xgboost.sklearn import XGBClassifier clf = XGBClassifier( sile ...

  3. 【机器学习】集成学习之xgboost的sklearn版XGBClassifier使用教程

    XGBClassifier是xgboost的sklearn版本.代码完整的展示了使用xgboost建立模型的过程,并比较xgboost和randomForest的性能. # -*- coding: u ...

  4. keras开发成sklearn接口

    我们可以通过包装器将Sequential模型(仅有一个输入)作为Scikit-Learn工作流的一部分,相关的包装器定义在keras.wrappers.scikit_learn.py中: 这里有两个包 ...

  5. lightgbm的sklearn接口和原生接口参数详细说明及调参指点

    class lightgbm.LGBMClassifier(boosting_type='gbdt', num_leaves=31, max_depth=-1, learning_rate=0.1, ...

  6. Python机器学习笔记:XgBoost算法

    前言 1,Xgboost简介 Xgboost是Boosting算法的其中一种,Boosting算法的思想是将许多弱分类器集成在一起,形成一个强分类器.因为Xgboost是一种提升树模型,所以它是将许多 ...

  7. Xgboost建模

    xgboost参数 选择较高的学习速率(learning rate).一般情况下,学习速率的值为0.1.但是,对于不同的问题,理想的学习速率有时候会在0.05到0.3之间波动.选择对应于此学习速率的理 ...

  8. XGBoost使用篇(未完成)

    1.截止到本文(20191104)sklearn没有集成xgboost算法,需要单独安装xgboost库,然后导入使用 xgboost官网安装说明 Pre-built binary wheel for ...

  9. kaggle竞赛-保险转化-homesite

    时间格式的转化 查看数据类型 查看DataFrame的详细信息 填充缺失值 category 数据类型转化 模型参数设定 结论 该项目是针对kaggle中的homesite进行的算法预测,使用xgbo ...

随机推荐

  1. laravel的批量插入

    在日常开发中,用到批量插入的操作还是挺多的.记得很早很早以前,我还是在循环中写sql插入,结果被项目经理按在地上摩擦.好吧,性能这东西,用不到的时候还好,万一性能成为瓶颈,那代码优化,数据库优化就首当 ...

  2. svn Can't revert without reverting children 解决方案

    EMZ3.0 qrh$ svn commit -m ""svn: E155010: Commit failed (details follow):svn: E155010: '/U ...

  3. 设置android的versionCode

    在config.xml里面设置 android-versionCode="1" AndroidManifest.xml 将会修改 android:versionCode=" ...

  4. SqlServer——事务一进阶之锁的概念(SqlServer技术内幕 T-SQL程序设计 第九章)

         一.事务的概念及ACID特性 对于单独一条SQL语句,数据库会隐式的将其作为事务,即该SQL语句要么执行成功,要么失败(相当于不执行),而我们通常说的事务就是将多条SQL语句放在 begin ...

  5. SqlServer——用户自定义函数

    在SQL Server中,用户不仅可以使用标准的内置函数,也可以使用自己定义的函数来实现一些特殊的功能.可以使用CREATE  FUNCTION 语句创建.在创建时需要注意:函数名在数据库中必须唯一, ...

  6. 问题:web.net页面超时;结果:设置ASP.NET页面的运行超时时间详细到单个页面及站点

    设置ASP.NET页面的运行超时时间详细到单个页面及站点 这篇文章主要介绍了如何设置ASP.NET页面的运行超时时间,包括全局超时时间.单个站点超时时间.单个页面请求超时时间,需要的朋友可以参考下 全 ...

  7. 如何实现1080P延迟低于500ms的实时超清直播传输技术<转>

    转载地址:http://www.yunweipai.com/archives/9037.html 最近由于公司业务关系,需要一个在公网上能实时互动超清视频的架构和技术方案.众所周知,视频直播用 CDN ...

  8. 【转】TinyMCE(富文本编辑器)

    效果预览:http://www.tinymce.com/tryit/full.php [转]TinyMCE(富文本编辑器)在Asp.Net中的使用方法 转自:http://www.cnblogs.co ...

  9. oracle DDL(create、alter、drop)

    一.创建表1.创建表CREATE TABLE <table_name>( column1 DATATYPE [NOT NULL] [PRIMARY KEY], column2 DATATY ...

  10. 大话设计模式--Python

    作者:五岳 出处:http://www.cnblogs.com/wuyuegb2312 上一周把<大话设计模式>看完了,对面向对象技术有了新的理解,对于一个在C下写代码比较多.偶尔会用到一 ...