原创博文,转载请注明出处!本文代码的github地址    博客索引地址

1.数据集

数据集使用sklearn自带的手写数字识别数据集mnist,通过函数datasets导入。mnist共1797个样本,8*8个特征,标签为0~9十个数字。

  1 ### 载入数据
2 from sklearn import datasets # 载入数据集
3 digits = datasets.load_digits() # 载入mnist数据集
4 print(digits.data.shape) # 打印输入空间维度
5 print(digits.target.shape) # 打印输出空间维度
6 """
7 (1797, 64)
8 (1797,)
9 """

2.数据集分割

sklearn.model_selection中train_test_split函数划分数据集,其中参数test_size为测试集所占的比例,random_state为随机种子(为了能够复现实验结果而设定)。

  1 ### 数据分割
2 from sklearn.model_selection import train_test_split # 载入数据分割函数train_test_split
3 x_train,x_test,y_train,y_test = train_test_split(digits.data, # 特征空间
4 digits.target, # 输出空间
5 test_size = 0.3, # 测试集占30%
6 random_state = 33) # 为了复现实验,设置一个随机数
7

3.模型相关(载入模型--训练模型--模型预测)

XGBClassifier.fit()函数用于训练模型,XGBClassifier.predict()函数为使用模型做预测。

  1 ### 模型相关
2 from xgboost import XGBClassifier
3 model = XGBClassifier() # 载入模型(模型命名为model)
4 model.fit(x_train,y_train) # 训练模型(训练集)
5 y_pred = model.predict(x_test) # 模型预测(测试集),y_pred为预测结果

4.性能评估

sklearn.metrics中accuracy_score函数用来判断模型预测的准确度。

  1 ### 性能度量
2 from sklearn.metrics import accuracy_score # 准确率
3 accuracy = accuracy_score(y_test,y_pred)
4 print("accuarcy: %.2f%%" % (accuracy*100.0))
5
6 """
7 95.0%
8 """

5.特征重要性

      xgboost分析了特征的重要程度,通过函数plot_importance绘制图片。

  1 ### 特征重要性
2 import matplotlib.pyplot as plt
3 from xgboost import plot_importance
4 fig,ax = plt.subplots(figsize=(10,15))
5 plot_importance(model,height=0.5,max_num_features=64,ax=ax)
6 plt.show()

6.完整代码

  1 # -*- coding: utf-8 -*-
2 """
3 ###############################################################################
4 # 作者:wanglei5205
5 # 邮箱:wanglei5205@126.com
6 # 代码:http://github.com/wanglei5205
7 # 博客:http://cnblogs.com/wanglei5205
8 # 目的:xgboost基本用法
9 ###############################################################################
10 """
11 ### load module
12 from sklearn import datasets
13 from sklearn.model_selection import train_test_split
14 from xgboost import XGBClassifier
15 from sklearn.metrics import accuracy_score
16
17 ### load datasets
18 digits = datasets.load_digits()
19
20 ### data analysis
21 print(digits.data.shape) # 输入空间维度
22 print(digits.target.shape) # 输出空间维度
23
24 ### data split
25 x_train,x_test,y_train,y_test = train_test_split(digits.data,
26 digits.target,
27 test_size = 0.3,
28 random_state = 33)
29
30 ### fit model for train data
31 model = XGBClassifier()
32 model.fit(x_train,y_train)
33
34 ### make prediction for test data
35 y_pred = model.predict(x_test)
36
37 ### model evaluate
38 accuracy = accuracy_score(y_test,y_pred)
39 print("accuarcy: %.2f%%" % (accuracy*100.0))
40 """
41 95.0%
42 """

【机器学习】集成学习之sklearn中的xgboost基本用法的更多相关文章

  1. 【集成学习】sklearn中xgboost模块的XGBClassifier函数

    # 常规参数 booster gbtree 树模型做为基分类器(默认) gbliner 线性模型做为基分类器 silent silent=0时,不输出中间过程(默认) silent=1时,输出中间过程 ...

  2. 【集成学习】sklearn中xgboost模块中plot_importance函数(绘图--特征重要性)

    直接上代码,简单 # -*- coding: utf-8 -*- """ ################################################ ...

  3. 【集成学习】sklearn中xgboot模块中fit函数参数详解(fit model for train data)

    参数解释,后续补上. # -*- coding: utf-8 -*- """ ############################################## ...

  4. [机器学习]集成学习--bagging、boosting、stacking

    集成学习简介 集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务. 如何产生"好而不同"的个体学习器,是集成学习研究的核心. 集成学习的思路是通过 ...

  5. 大白话5分钟带你走进人工智能-第32节集成学习之最通俗理解XGBoost原理和过程

    目录 1.回顾: 1.1 有监督学习中的相关概念 1.2  回归树概念 1.3 树的优点 2.怎么训练模型: 2.1 案例引入 2.2 XGBoost目标函数求解 3.XGBoost中正则项的显式表达 ...

  6. 机器学习——集成学习(Bagging、Boosting、Stacking)

    1 前言 集成学习的思想是将若干个学习器(分类器&回归器)组合之后产生一个新学习器.弱分类器(weak learner)指那些分类准确率只稍微好于随机猜测的分类器(errorrate < ...

  7. 机器学习--集成学习(Ensemble Learning)

    一.集成学习法 在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好) ...

  8. python大战机器学习——集成学习

    集成学习是通过构建并结合多个学习器来完成学习任务.其工作流程为: 1)先产生一组“个体学习器”.在分类问题中,个体学习器也称为基类分类器 2)再使用某种策略将它们结合起来. 通常使用一种或者多种已有的 ...

  9. 机器学习:集成学习:随机森林.GBDT

    集成学习(Ensemble Learning) 集成学习的思想是将若干个学习器(分类器&回归器)组合之后产生一个新学习器.弱分类器(weak learner)指那些分类准确率只稍微好于随机猜测 ...

随机推荐

  1. nodeJs和JavaScript的异同

    JavaScript组成:ECMAScript(定义这门语言的基础,比如语法.数据类型.结构以及一些内置对象等).DOM(基于ECMASCRIPT,扩展出来的用于操作页面元素的方法).BOM(基于EC ...

  2. 关于C# get set的简单用法

    关于C# get set的文章很多,但是笔者的这篇文章有它的特别之处,笔者用简单的语言把c# get set讲述的十分明了. C# get set释一:属性的访问器包含与获取(读取或计算)或设置(写) ...

  3. JavaScript高级程序设计-读书笔记(1)

    第1章 JavaScript简介 JavaScript是一种专为与网页交互而设计的脚本语言,由下列三个不同的部分组成: l        ECMAScript:提供核心语言功能: l        文 ...

  4. HDU3864 D_num

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...

  5. 百度编辑器(ueditor)@功能之获取坐标

    //获取百度编辑器的工具类 var domUtils = UE.dom.domUtils; //获取编辑器的坐标 var $ueditor_offset = $("#ueditor_0&qu ...

  6. mongodb禁止外网访问以及添加账号

    未曾料到被黑客勒索比特币的戏码竟然降临到我的身上,几个月的技术积累付之一炬.怪只怪自己学艺不精,心存侥幸和无知,不过经此一役,方知网络安全防护的重要性. 一直未给自己的mongodb数据库设置账号密码 ...

  7. 如何在Ubuntu Linux上安装Oracle Java

    不错文档,希望地址永久可用,url:http://zh.wikihow.com/%E5%9C%A8Ubuntu-Linux%E4%B8%8A%E5%AE%89%E8%A3%85Oracle-Java

  8. 9.深入理解AbstractQueuedSynchronizer(AQS)

    1. AQS简介 在上一篇文章中我们对lock和AbstractQueuedSynchronizer(AQS)有了初步的认识.在同步组件的实现中,AQS是核心部分,同步组件的实现者通过使用AQS提供的 ...

  9. 几款必备LINUX的命令行神器

    Dstat & sar iostat, vmstat, ifstat 三合一的工具,用来查看系统性能(我在<性能调优攻略>中提到过那三个xxstat工具). 官方网站:http:/ ...

  10. 上传组件UploadiFive(H5版本)

    初始化 $('#file_upload').uploadifive({ 'auto' : false, 'buttonClass':'btn', 'buttonText':'选择视频', 'fileS ...