第八章xgboost/lightGBM

文章目录

  • 1 xgboost
    • 1.1 基本用法
      • 1.1.1 通用参数
      • 1.1.2 集成参数
      • 1.1.3 任务参数
    • 1.2 例子
    • 1.3 当评价函数不在默认范围内
  • 2 lightGBM

1 xgboost

1.1 基本用法

xgboost有三类参数:通用参数、集成参数和任务参数。

1.1.1 通用参数

booster:可选值gbree、gblinear。默认值是gbree。这是指定用哪种基模型。
silent,可选值0,1。默认是0,表示有输出。
nthread 线程数

1.1.2 集成参数

eta 学习率。默认值0.3,范围[0,1]。
gamma [default=0, alias: min_split_loss]为了对树的叶子节点做进一步的分割而必须设置的损失减少的最小值,该值越大,算法越保守range: [0,∞]

max_depth [default=6]用于设置树的最大深度range: [1,∞]

min_child_weight [default=1]表示子树观测权重之和的最小值,如果树的生长时的某一步所生成的叶子结点,其观测权重之和小于min_child_weight,那么可以放弃该步生长,在线性回归模式中,这仅仅与每个结点所需的最小观测数相对应。该值越大,算法越保守range: [0,∞]

max_delta_step [default=0]如果该值为0,就是没有限制;如果设为一个正数,可以使每一步更新更加保守通常情况下这一参数是不需要设置的,但是在logistic回归的训练集中类极端不平衡的情况下,将这一参数的设置很有用,将该参数设为1-10可以控制每一步更新range: [0,∞]

subsample [default=1]表示观测的子样本的比率,将其设置为0.5意味着xgboost将随机抽取一半观测用于数的生长,这将有助于防止过拟合现象range: (0,1]

colsample_bytree [default=1]表示用于构造每棵树时变量的子样本比率range: (0,1]

colsample_bylevel [default=1]用来控制树的每一级的每一次分裂,对列数的采样的占比。一般不太用这个参数,因为subsample参数和colsample_bytree参数可以起到相同的作用。range: (0,1]

lambda [default=1, alias: reg_lambda]L2 权重的L2正则化项

alpha [default=0, alias: reg_alpha]L1 权重的L1正则化项

1.1.3 任务参数

objective [ default=reg:linear ] 这个参数定义需要被最小化的损失函数。

base_score [ default=0.5 ]

eval_metric [ 默认是根据 损失函数/目标函数 自动选定的 ]。评估函数。

seed [ default=0 ] random number seed.

1.2 例子

## 引入包
from numpy import loadtxt
from xgboost import XGBClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
## 分出变量和标签
dataset = loadtxt('data/Pima-Indians-Diabetes.csv', delimiter=",",skiprows=1)
X = dataset[:,0:8]
Y = dataset[:,8]
## 分出训练集和测试集
seed = 7
test_size = 0.33
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size=test_size,random_state=seed)
## 开始训练
model = XGBClassifier()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
predictions = [round(value) for value in y_pred]
accuracy = accuracy_score(y_test, predictions)
print("Accuracy: %.2f%%" % (accuracy * 100.0))

1.3 当评价函数不在默认范围内

此时需要调用xgboost的native方法进行训练。
需要将训练集和测试集变为xgb.DMatrix数据格式。
可以自己定义的损失函数,需要给定损失函数的一阶导数和二阶导数。
可以自定义评估标准
参考 链接

2 lightGBM

lightGBM是微软开源的一个库。与xgboost相似,但可以处理数据量更大、特征维度更高的数据。
lightGBM与xgboost树的生长方式不同。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424094.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

根据Web服务器的记录来追踪黑客(转)

有感触,转此文 现今的网络,安全越来越受到大家的重视,在构建网络安全环境时,在技术手段,管理制度等方面都逐步加强,设置防火墙,安装入侵检测系统等等。但网络安全是个全方位的问题,忽…

spring mvc学习(30):sessionatrribute存储session数据

创建maven项目就不说了&#xff0c;需要的找我前面的博客 pom.xml文件 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http…

验证码

金讯教育有一节课讲的是验证码;代码如下&#xff1a; html: <label><input type"text" /><span id"yz" style" background:url(1.png) -10px -15px;width:80px;font-style: italic; height: 20px;border: 1px solid black;display: in…

C++ Builder 启动时不显示主窗体

在网络上看到不少说法&#xff0c;但标准的做法应该是这样的。首先&#xff0c;设置主窗体Visible属性为false;然后&#xff0c;在Application->Run之前&#xff0c;设置Application->ShowMainForm false; 即可转载于:https://www.cnblogs.com/rookieport/archive/2006/…

第九章 隐马尔科夫模型HMM

文章目录1 隐马尔科夫模型定义2 概率计算算法2.1 前向概率2.2 概率计算3 学习算法3.1 EM算法3.2EM在HMM4 预测算法1 隐马尔科夫模型定义 隐马尔科夫模型是一个seq2seq模型。例如词性标注。 时间序列t1t2t3状态序列代词动词名词观察序列我爱机器学习 能够看到的&#xff0c;例…

spring mvc学习(31):原生api

创建maven项目就不说了&#xff0c;需要的找我前面的博客 pom.xml文件 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http…

如何使用设计模式来构造系统--(7)

(声明:本系列所用的模式都来自GOF23中&#xff0c;本系列并不是讲23种经典设计模式&#xff0c;而是如何去使用这些模式) 在前面的文章中,我们设计完成了员工工资,福利以及按照部门来区分员工,以及遍历统计部门人员成本等业务逻辑,这些设计基本上可以满足我们所设定的场景的…

程序员四大忌 你该如何避免呢?

< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> 一忌&#xff1a;轻易言败&#xff0c;没有自信没有永不放弃精神的程序员&#xff0c;只是一个有程序员名号的假程序员。一个真正的程序员&#xff0c;知道在程序设计的过程中&#…

spring mvc学习(32):原生代码导入

第一种方法 1点击项目--右键---preferences(添加build path) 勾上 第二种方法 2配置pom.xml <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</…

深度学习03-CNN 应用

说明&#xff1a;本系列是七月算法深度学习课程的学习笔记 文章目录1 概述2 图片识别定位3 物体监测3.1 选择性搜索3.2 R-CNN3.3 Fast R-CNN3.4 Faster R-CNN4 语义分割4.1 滑窗处理4.2全卷积神经网络5 代码1 概述 CNN主要任务包含物体识别定位、物体识别、图像分割。 图片识…

管理信息系统数据库设计标准(草稿)

表名命名标准&#xff1a; 1.所有基础资料表&#xff0c;表名均由dic表名英文含义词构成。 2._Dictionary_Table是表名列表&#xff0c;例外。 字段命名标准&#xff1a; …

spring mvc学习(33):原生apiSpring MVC过滤器-HiddenHttpMethodFilter

浏览器form表单只支持GET与POST请求&#xff0c;而DELETE、PUT等method并不支持&#xff0c;spring3.0添加了一个过滤器&#xff0c;可以将这些请求转换为标准的http方法&#xff0c;使得支持GET、POST、PUT与DELETE请求&#xff0c;该过滤器为HiddenHttpMethodFilter。 Hidden…

【转帖】windows命令行中java和javac、javap使用详解(java编译命令)

windows命令行中java和javac、javap使用详解(java编译命令) 更新时间&#xff1a;2014年03月23日 11:53:15 作者&#xff1a; 我要评论 http://www.jb51.net/article/48380.htm学习一下java 最近重新复习了一下java基础&#xff0c;这里便讲讲对于一个类文件如何编译、运行…

第六课 从词向量到NLP分类问题

文章目录1 nlp的常见任务2 词向量表示2.1 离散表示2.2 分布式表示2.3 NNLM(2013年)2.3.1模型2.3.2特点2.4 Word2Vector&#xff1a;CBOW连续词袋2.4.1 样本处理2.4.2 结构2.4.3 CBOW&#xff1a;层次softmax2.4.4 CBOW&#xff1a;负例采样2.4.5 Word2Vec&#xff1a;skip-gram…

11-11 又是一年光棍节!

11月11日&#xff0c;光棍节&#xff0c;没有哪一天比这一天更形象、更贴切了。当光棍成了“光贵”&#xff0c;王老五也有了黄金级和钻石级之分的今天&#xff0c;“光棍节”自然而然地流行开来。“光棍”两个字&#xff0c;不仅不是大龄男女的忌讳&#xff0c;而且在很多人眼…

spring mvc学习(34):restful的delete

创建maven项目就不说了&#xff0c;需要的找我前面的博客 pom.xml文件 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http…

热度3年猛增20倍,Serverless云开发的技术架构全解析

『 作为一个不断发展的新兴技术&#xff0c; Serverless 热度的制高点已然到来。』 或许&#xff0c;Google Trends 所显示的 3 年猛增 20 倍的“ Serverless ” 搜索量&#xff0c;可以佐证 Serverless 在整个行业中的火爆程度。 不仅如此&#xff0c;据 KBV 研究公司新发布的…

软件工程 工具之二—— PowerDesigner v12(六)

第十章 面向对象模型 8、定义部署图1&#xff09;部署图&#xff08;Deployment Diagram&#xff09;可用来描述系统硬件的物理拓扑结构&#xff0c;以及在此结构上运行的软件。部署图可以显示节点的拓扑结构、通信路径、节点上运行的组件实例。相比其它视图&#xff0c;部署图…

第七课 循环神经网络与自然语言处理

文章目录1 循环神经网络1.1 场景与多种应用1.2 RNN网络结构1.2.1为什么需要RNN1.2.2 RNN 结构1.3 多种RNN1.4 BPTT算法1.5 生成模型与图像描述2 LSTM2.1 LSTM2.2 GRU1 循环神经网络 1.1 场景与多种应用 1 模仿论文生成 2 模仿linux内核编写代码 3 模仿小四写论文 4 机器翻译 …

第十二题:设int x=1,float y=2,则表达式x/y的值是:

第十二题 设int x1,float y2,则表达式x/y的值是&#xff1a;&#xff08;&#xff09; A 0 B 1 C 2 D 以上都不是 懵逼树上懵逼果&#xff0c;懵逼树下你和我 首先看到这道题&#xff0c;我是懵逼和绝望的。 首先我们打开评论&#xff0c;看看谁的赞最多&#xff0c;拿…