原创博文,转载请注明出处!本文代码的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. Spring Boot CRUD+分页(基于Mybatis注解方式)

    步骤一:关于Mybatis Mybatis 是用来进行数据库操作的框架.其中分页使用Mybatis中的PageHelper插件. Mybatis与hibernate对比: 1.hibernate是一个 ...

  2. LeetCode——Maximum Product of Three Numbers

    Question Given an integer array, find three numbers whose product is maximum and output the maximum ...

  3. HTTP协议中的COOKIE机制简单理解

    1.为什么会有COOKIE这种机制 首先一种场景, 在一个网站上面, 我发起一次请求,那服务器怎么知道我是谁?是谁发起的这次请求呢, HTTP协议是无状态的协议, 浏览器的每一次请求,服务器都当做一次 ...

  4. 解题报告:hdu1159 common consequence LCS裸题

    2017-09-02 17:07:42 writer:pprp 通过这个题温习了一下刚学的LCS 代码如下: /* @theme:hdu1159 @writer:pprp @begin:17:01 @ ...

  5. Python学习札记(十六) 高级特性2 迭代

    参考:迭代 Note 1.如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration). 在C.C++.Java等语言中,for循 ...

  6. Android -- ContentObserver 内容观察者

    1. 实现原理图 2. 示例代码 (暂时有个问题,短信观察者 收到一条短信时 onchange方法会执行两次, 解决方法为:每次监听到变化的时候就去取最新短信的id,跟上次取的比较,如果一样的就不做处 ...

  7. Dive into Spring framework -- 了解基本原理(二)--设计模式-part2

    Template模式 Template模式顾名思义是提供了一种模板,也就是针对某种业务提供了模范框架.这个在spring中是属于核心模式的,因为其ApplicationContext抽象类就是模板模式 ...

  8. Java分支结构 - if...else/switch

    Java分支结构 - if...else/switch 顺序结构只能顺序执行,不能进行判断和选择,因此需要分支结构. Java有两种分支结构: if语句 switch语句 if语句 一个if语句包含一 ...

  9. 双击jar包运行方法

    方案一 在jar包同级,写个bat文件,如下 java -jar Xxx.jar pause 方案二 右击jar文件 ->打开方式->选择安装的jre/bin/javaw.exe. 双击依 ...

  10. python:input()和raw_input()

    1.input() 接受各种合法类型的输入,比如输入字符串,则需要使用双引号,否则报错. input()会自动判断类型,比如输入的是 1.1,则返回的类型是float. 示例: 2.raw_input ...