sklearn中的XGBClassifier函数学习
# 常规参数
- 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--负对数似然函数(多分类)
- 回归任务(默认rmse)
- 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函数学习相关推荐
- Python之 sklearn:sklearn中的train_test_split函数的简介及使用方法之详细攻略
Python之 sklearn:sklearn中的train_test_split函数的简介及使用方法之详细攻略 目录 sklearn中的train_test_split函数的简介 train_tes ...
- Python之 sklearn:sklearn中的RobustScaler 函数的简介及使用方法之详细攻略
Python之 sklearn:sklearn中的RobustScaler 函数的简介及使用方法之详细攻略 目录 sklearn中的RobustScaler 函数的简介及使用方法 sklearn中的R ...
- sklearn中的train_test_split()函数解析
sklearn中的train_test_split()函数解析 train_test_split()函数:机器学习中用于分割数据集(训练集和测试集) X_train,X_test,y_train,y_ ...
- sklearn中的Pipline(流水线学习器)
简介 管道机制实现了对全部步骤的流式化封装和管理(streaming workflows with pipelines). 管道机制(也有人翻译为流水线学习器?这样翻译可能更有利于后面内容的理解)在机 ...
- 【Python】sklearn 中的 make_blobs() 函数详解
文章目录 一.介绍 二.函数的使用 一.介绍 make_blobs() 是 sklearn.datasets中的一个函数. 主要是产生聚类数据集,产生一个数据集和相应的标签. 函数的源代码如下: de ...
- Java中的回调函数学习-深入浅出
Java中的回调函数一般来说分为下面几步: 声明回调函数的统一接口interface A.包括方法callback(); 在调用类caller内将该接口设置为私有成员private A XXX; 在c ...
- mysql中sql语句有if_Sql中的if函数学习
今天,在修改项目bug时遇到一些需要计算的功能实现,虽然可以用java代码写,但是由于时间较为充裕,有尝试用sql写一下,学习到了if函数 if(o.containerSendNet>0 and ...
- sklearn 中的Ridge函数
语法: Ridge(alpha=1.0, fit_intercept=True, normalize=False, copy_X=True, max_iter=None, tol=1e-3, sol ...
- 详解sklearn中的make_moons函数
make_moons是函数用来生成数据集,在sklearn.datasets里,具体用法如下: Parameters: n_samples : int, optional (default=100)T ...
最新文章
- ZooKeeper演示案例
- 新型人造DNA结构信息密度加倍
- LAMP编译安装(一)——安装Apache2.4
- linux系统启动过程(三)
- 消息中间件之ActiveMQ 入门
- JAVA_OA管理系统(四)番外篇:使用Spring注解注入属性
- 如何解决秒杀的性能问题和超卖的讨论 及防止按钮多次点击
- 计算机上差额如何计算公式,【】两个Excel表格之间怎么相加减 计算两个表格的差额???用什么公式??? 具体步骤怎么的...
- Django 模型字段 —— ImageField
- c语言哈夫曼压缩文本,哈夫曼文本压缩C语言实现.doc
- django-新的django项目
- Javascript跨域问题总结
- linux核心的最新版本,求问Linux最新内核版本以及发布日期。
- 使用Java语言编写一个五子棋UI界面并实现网络对战功能(非局域网)
- 人脸识别之人脸关键点(仅供本人参考)
- 【人工智能算法从图解入手】
- HTML5七夕情人节表白网页制作 __浪漫空中散落的花瓣3D相册__ HTML+CSS+JavaScript
- 软考中级哪个值得考?详细解答来了
- gamepad android手柄,CF手游手柄怎么玩 CF手游怎么设置安卓手柄
- webpack Vue热加载配置好的确不行解决方法,限于webstorm编辑