# 常规参数

  • booster

    • gbtree 树模型做为基分类器(默认)
    • gbliner 线性模型做为基分类器
  • silent
    • silent=0时,不输出中间过程(默认)
    • silent=1时,输出中间过程
  • nthread
    • nthread=-1时,使用全部CPU进行并行运算(默认)
    • nthread=1时,使用1个CPU进行运算。
  • scale_pos_weight
    • 正样本的权重,在二分类任务中,当正负样本比例失衡时,设置正样本的权重,模型效果更好。例如,当正负样本比例为1:10时,scale_pos_weight=10。

# 模型参数

  • n_estimatores

    • 含义:总共迭代的次数,即决策树的个数
    • 调参:
  • early_stopping_rounds
    • 含义:在验证集上,当连续n次迭代,分数没有提高后,提前终止训练。
    • 调参:防止overfitting。
  • max_depth
    • 含义:树的深度,默认值为6,典型值3-10。
    • 调参:值越大,越容易过拟合;值越小,越容易欠拟合。
  • min_child_weight
    • 含义:默认值为1,。
    • 调参:值越大,越容易欠拟合;值越小,越容易过拟合(值较大时,避免模型学习到局部的特殊样本)。
  • subsample
    • 含义:训练每棵树时,使用的数据占全部训练集的比例。默认值为1,典型值为0.5-1。
    • 调参:防止overfitting。
  • colsample_bytree
    • 含义:训练每棵树时,使用的特征占全部特征的比例。默认值为1,典型值为0.5-1。
    • 调参:防止overfitting。

# 学习任务参数

  • learning_rate

    • 含义:学习率,控制每次迭代更新权重时的步长,默认0.3。
    • 调参:值越小,训练越慢。
    • 典型值为0.01-0.2。
  • objective 目标函数
    • 回归任务

      • reg:linear (默认)
      • reg:logistic
    • 二分类
      • binary:logistic     概率
      • binary:logitraw   类别
    • 多分类
      • multi:softmax  num_class=n   返回类别
      • multi:softprob   num_class=n  返回概率
    • rank:pairwise
  • eval_metric
    • 回归任务(默认rmse)

      • rmse--均方根误差
      • mae--平均绝对误差
    • 分类任务(默认error)
      • auc--roc曲线下面积
      • error--错误率(二分类)
      • merror--错误率(多分类)
      • logloss--负对数似然函数(二分类)
      • mlogloss--负对数似然函数(多分类)
  • gamma
    • 惩罚项系数,指定节点分裂所需的最小损失函数下降值。
    • 调参:
  • alpha
    • L1正则化系数,默认为1
  • lambda
    • L2正则化系数,默认为1

# 代码主要函数:

  • 载入数据:load_digits()
  • 数据拆分:train_test_split()
  • 建立模型:XGBClassifier()
  • 模型训练:fit()
  • 模型预测:predict()
  • 性能度量:accuracy_score()
  • 特征重要性:plot_importance()
  • 
    ### load module
    import matplotlib.pyplot as plt
    from sklearn import datasets
    from sklearn.model_selection import train_test_split
    from sklearn.metrics import accuracy_score
    from xgboost import XGBClassifier
    from xgboost import plot_importance### load datasets
    digits = datasets.load_digits()### data analysis
    print(digits.data.shape)
    print(digits.target.shape)### data split
    x_train,x_test,y_train,y_test = train_test_split(digits.data,digits.target,test_size = 0.3,random_state = 33)
    ### fit model for train data
    model = XGBClassifier(learning_rate=0.1,n_estimators=1000,         # 树的个数--1000棵树建立xgboostmax_depth=6,               # 树的深度min_child_weight = 1,      # 叶子节点最小权重gamma=0.,                  # 惩罚项中叶子结点个数前的参数subsample=0.8,             # 随机选择80%样本建立决策树colsample_btree=0.8,       # 随机选择80%特征建立决策树objective='multi:softmax', # 指定损失函数scale_pos_weight=1,        # 解决样本个数不平衡的问题random_state=27            # 随机数)
    model.fit(x_train,y_train,eval_set = [(x_test,y_test)],eval_metric = "mlogloss",early_stopping_rounds = 10,verbose = True)### plot feature importance
    fig,ax = plt.subplots(figsize=(15,15))
    plot_importance(model,height=0.5,ax=ax,max_num_features=64)
    plt.show()### make prediction for test data
    y_pred = model.predict(x_test)### model evaluate
    accuracy = accuracy_score(y_test,y_pred)
    print("accuarcy: %.2f%%" % (accuracy*100.0))
    """
    95.74%
    """

sklearn中的XGBClassifier函数学习相关推荐

  1. Python之 sklearn:sklearn中的train_test_split函数的简介及使用方法之详细攻略

    Python之 sklearn:sklearn中的train_test_split函数的简介及使用方法之详细攻略 目录 sklearn中的train_test_split函数的简介 train_tes ...

  2. Python之 sklearn:sklearn中的RobustScaler 函数的简介及使用方法之详细攻略

    Python之 sklearn:sklearn中的RobustScaler 函数的简介及使用方法之详细攻略 目录 sklearn中的RobustScaler 函数的简介及使用方法 sklearn中的R ...

  3. sklearn中的train_test_split()函数解析

    sklearn中的train_test_split()函数解析 train_test_split()函数:机器学习中用于分割数据集(训练集和测试集) X_train,X_test,y_train,y_ ...

  4. sklearn中的Pipline(流水线学习器)

    简介 管道机制实现了对全部步骤的流式化封装和管理(streaming workflows with pipelines). 管道机制(也有人翻译为流水线学习器?这样翻译可能更有利于后面内容的理解)在机 ...

  5. 【Python】sklearn 中的 make_blobs() 函数详解

    文章目录 一.介绍 二.函数的使用 一.介绍 make_blobs() 是 sklearn.datasets中的一个函数. 主要是产生聚类数据集,产生一个数据集和相应的标签. 函数的源代码如下: de ...

  6. Java中的回调函数学习-深入浅出

    Java中的回调函数一般来说分为下面几步: 声明回调函数的统一接口interface A.包括方法callback(); 在调用类caller内将该接口设置为私有成员private A XXX; 在c ...

  7. mysql中sql语句有if_Sql中的if函数学习

    今天,在修改项目bug时遇到一些需要计算的功能实现,虽然可以用java代码写,但是由于时间较为充裕,有尝试用sql写一下,学习到了if函数 if(o.containerSendNet>0 and ...

  8. sklearn 中的Ridge函数

    语法:  Ridge(alpha=1.0, fit_intercept=True, normalize=False, copy_X=True, max_iter=None, tol=1e-3, sol ...

  9. 详解sklearn中的make_moons函数

    make_moons是函数用来生成数据集,在sklearn.datasets里,具体用法如下: Parameters: n_samples : int, optional (default=100)T ...

最新文章

  1. ZooKeeper演示案例
  2. 新型人造DNA结构信息密度加倍
  3. LAMP编译安装(一)——安装Apache2.4
  4. linux系统启动过程(三)
  5. 消息中间件之ActiveMQ 入门
  6. JAVA_OA管理系统(四)番外篇:使用Spring注解注入属性
  7. 如何解决秒杀的性能问题和超卖的讨论 及防止按钮多次点击
  8. 计算机上差额如何计算公式,【】两个Excel表格之间怎么相加减 计算两个表格的差额???用什么公式??? 具体步骤怎么的...
  9. Django 模型字段 —— ImageField
  10. c语言哈夫曼压缩文本,哈夫曼文本压缩C语言实现.doc
  11. django-新的django项目
  12. Javascript跨域问题总结
  13. linux核心的最新版本,求问Linux最新内核版本以及发布日期。
  14. 使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网)
  15. 人脸识别之人脸关键点(仅供本人参考)
  16. 【人工智能算法从图解入手】
  17. HTML5七夕情人节表白网页制作 __浪漫空中散落的花瓣3D相册__ HTML+CSS+JavaScript
  18. 软考中级哪个值得考?详细解答来了
  19. gamepad android手柄,CF手游手柄怎么玩 CF手游怎么设置安卓手柄
  20. webpack Vue热加载配置好的确不行解决方法,限于webstorm编辑

热门文章

  1. SAP License:GR与IR
  2. 软件工程学习进度第五周暨暑期学习进度之第五周汇总
  3. k8s集群之master节点部署
  4. Win10配置Tensorflow_Object_Detection_API
  5. 7-13爬虫入门之BeautifulSoup对网页爬取内容的解析
  6. WPF 之 鼠标双击事件
  7. 第一百五十天 how can I坚持
  8. OracleBulkCopy的批量数据导入
  9. FinTech领域的风险控制——风险篇
  10. x86_64 Linux 运行时栈的字节对齐