sklearn中xgboost模块中plot_importance函数(特征重要性)

# -*- coding: utf-8 -*-
"""
###############################################################################
# 作者:wanglei5205
# 邮箱:[email protected]
# 代码:http://github.com/wanglei5205
# 博客:http://cnblogs.com/wanglei5205
# 目的:学习xgboost的plot_importance函数
# 官方API文档:http://xgboost.readthedocs.io/en/latest/python/python_api.html#module-xgboost.training
###############################################################################
"""
### 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)

model = XGBClassifier()
model.fit(x_train,y_train)

### 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.0%
"""

  

原文地址:https://www.cnblogs.com/Allen-rg/p/9520285.html

时间: 2024-09-30 16:06:40

sklearn中xgboost模块中plot_importance函数(特征重要性)的相关文章

解决python中selen模块中'list' object has no attribute 'send_keys'报错

程序在执行如下代码的时候报错'list' object has no attribute 'send_keys' 解决: 把find_elements_by_id方法改成find_element_by_id 参考: https://stackoverflow.com/questions/29957373/selenium-python-send-key-error-list-object-has-no-attribute 解决python中selen模块中'list' object has no

Lua中的模块与module函数详解

很快就要开始介绍Lua里的“面向对象”了,在此之前,我们先来了解一下Lua的模块. 1.编写一个简单的模块 Lua的模块是什么东西呢?通常我们可以理解为是一个table,这个table里有一些变量.一些函数… 等等,这不就是我们所熟悉的类吗? 没错,和类很像(实际上我说不出它们的区别). 我们来看看一个简单的模块,新建一个文件,命名为game.lua,代码如下: 复制代码代码如下: game = {}function game.play()    print("那么,开始吧");end

Python中datetime模块中strftime/strptime函数

python中datetime模块非常好用,提供了日期格式和字符串格式相互转化的函数strftime/strptime 1.由日期格式转化为字符串格式的函数为: datetime.datetime.strftime() 2.由字符串格式转化为日期格式的函数为: datetime.datetime.strptime() 3.两个函数都涉及日期时间的格式化字符串,列举如下: %a 星期几的简写;如 星期三为Web %A 星期几的全称;如 星期三为Wednesday %b 月份的简写; 如4月份为Ap

由ffmpeg中avformat模块中的 URL_SCHEME_CHARS 看 strspn( ) 的妙用

在ffmpeg的avformat 模块中avio.c 对 URL_SCHEME_CHARS 的定义: #define URL_SCHEME_CHARS "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" "0123456789+-." 在 int ffurl_alloc()中有这样一句: size_t proto_len = strspn(filename, URL_SCHEME_C

Python中collections模块中的Counter()类

最近在刷leetcode,发现很多题目的思路都很相似.其中,collections模块中的Counter()多次在习题中碰到,很有必要对该知识点总结一下,加深理解. 1.collections模块 collections模块自Python 2.4 版本之后,引入除了dict.list.set.tuple以外的一些特俗容器,分别是: namedtuple():factory function for creating tuple subclasses with named fields(versi

EBS 中iSupplier模块中的MAPPING_ID

在EBS的供应商模块中,有一个非常有意思的表 POS_SUPPLIER_MAPPINGS, 这个表中建立了supplier_reg_id,vendor_id,party_id之间的映射关系. 这个表中有一些小细节: 1.直接使用管理员添加的供应商是没有supplier_reg_id的. 2.邀请供应商自主注册的供应商在被审批通过之前是只有supplier_reg_id的. 3.使用接口等形式添加的供应商刚开始是不会在该表中存在的,直到供应商登录后对自己的信息做过一些管理才会建立映射,但是不会有s

java中try-catch模块中with语句块的作用

以前写try-catch时,遇到一些流.连接等对象,必定需要添加finally语句来关闭这些对象.今天突然发现try的with模块可以省略在finally手动关闭的动作,可以通过将这些对象定义在with模块中,然后在try语句完成后,自动close对象,前提需要该对象实现了AutoCloseable或Closeable接口.然后发现,这个特性其实在java7中就引入了,现在都java9了,才发现.很落伍啊!!!例如现在的写法: try (BufferedInputStream bis = new

python中csv模块和join函数的使用

在看项目的时候恰好又碰到了这两个功能,然后稍微记录一下,关于join函数,是一个经常使用的联合函数,作用就是用自己规定的字符去串联字符串和列表之类的,对于字符串来说,join函数针对的是字符串中的每一个字符元素,但是对于列表来说就是针对列表中的每一个元素,不过在字典中join只会直接串联key而不是value,所以如果要value的话要自己指定一下. #!/usr/bin/env python # -*- coding:utf-8 -*- 'sep'.join(sep) #第一个sep是自己想要

Python中threading模块的join函数

Join的作用是众所周知的,阻塞进程直到线程执行完毕.通用的做法是我们启动一批线程,最后join这些线程结束,例如: 1 for i in range(10): 2 3 t = ThreadTest(i) 4 5 thread_arr.append(t) 6 7 for i in range(10): 8 9 thread_arr[i].start() 10 11 for i in range(10): 12 13 thread_arr[i].join() 此处join的原理就是依次检验线程池中