基于天气数据集的XGBoost分类预测_第1页
基于天气数据集的XGBoost分类预测_第2页
基于天气数据集的XGBoost分类预测_第3页
基于天气数据集的XGBoost分类预测_第4页
基于天气数据集的XGBoost分类预测_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南商务职业技术学院毕业设计

目录

1引言...................................................................................................................1

1.1XGBoost的介绍与应用.........................................................................1

1.2原理介绍................................................................................................1

1.3相关流程................................................................................................2

2开发环境和工具...............................................................................................3

2.1使用平台................................................................................................3

2.1.1ModelWhale..................................................................................3

2.1.2Python简介..................................................................................3

2.1.3Python第三方库简介..................................................................4

3数据采集与处理...............................................................................................4

3.1数据加载................................................................................................4

3.2可视化描述............................................................................................8

3.3特征向量编码........................................................................................9

4模型构建与评估优化.....................................................................................10

4.1模型的构建..........................................................................................10

4.1.1定义与训练模型.......................................................................10

4.1.2模型评估...................................................................................11

4.2特征选择..............................................................................................12

4.3网格调参法..........................................................................................13

5总结.................................................................................................................14

参考资料.............................................................................................................16

I

湖南商务职业技术学院毕业设计

基于天气数据集的XGBoost分类预测

1引言

1.1XGBoost的介绍与应用

XGBoost是2016年由华盛顿大学陈天奇老师带领开发的一个可扩展机器

学习系统。严格意义上讲XGBoost并不是一种模型,而是一个可供用户轻松解

决分类、回归或排序问题的软件包。它内部实现了梯度提升树(GBDT)模型,并

对模型中的算法进行了诸多优化,在取得高精度的同时又保持了极快的速度,

在一段时间内成为了国内外数据挖掘、机器学习领域中的大规模杀伤性武器。

更重要的是,XGBoost在系统优化和机器学习原理方面都进行了深入的考

虑。毫不夸张的讲,XGBoost提供的可扩展性,可移植性与准确性推动了机器

学习计算限制的上限,该系统在单台机器上运行速度比当时流行解决方案快十

倍以上,甚至在分布式系统中可以处理十亿级的数据。

XGBoost在机器学习与数据挖掘领域有着极为广泛的应用。据统计在2015

年Kaggle平台上29个获奖方案中,17只队伍使用了XGBoost;在2015年

KDD-Cup中,前十名的队伍均使用了XGBoost,且集成其他模型比不上调节

XGBoost的参数所带来的提升。这些实实在在的例子都表明,XGBoost在各种

问题上都可以取得非常好的效果。

同时,XGBoost还被成功应用在工业界与学术界的各种问题中。例如商店

销售额预测、高能物理事件分类、web文本分类;用户行为预测、运动检测、广

告点击率预测、恶意软件分类、灾害风险预测、在线课程退学率预测。虽然领

域相关的数据分析和特性工程在这些解决方案中也发挥了重要作用,但学习者

与实践者对XGBoost的一致选择表明了这一软件包的影响力与重要性。

1.2原理介绍

XGBoost底层实现了GBDT算法,并对GBDT算法做了一系列优化:

1、对目标函数进行了泰勒展示的二阶展开,可以更加高效拟合误差。

2、提出了一种估计分裂点的算法加速CART树的构建过程,同时可以处理

稀疏数据。

1

湖南商务职业技术学院毕业设计

3、提出了一种树的并行策略加速迭代。

4、为模型的分布式算法进行了底层优化。

XGBoost是基于CART树的集成模型,它的思想是串联多个决策树模型共

同进行决策。它有两个特点:

(1)CART树,是一颗二叉树;

(2)回归树,最后拟合结果是连续值。

XGBoost模型可以表示为以下形式,我们约定ft(x)表示前t颗树的和,ht(x)

表示第t颗决策树,模型定义如下:

ft(x)=∑t=1Tht(x)

由于模型递归生成,第t步的模型由第t−1步的模型形成,可以写成:

ft(x)=ft−1(x)+ht(x)

每次需要加上的树ht(x)是之前树求和的误差:

rt,i=yi−fm−1(xi)

我们每一步只要拟合一颗输出为rt,i的CART树加到ft−1(x)就可以了。

1.3相关流程

1、了解XGBoost的参数与相关知识

2、掌握XGBoost的Python调用并将其运用到天气数据集预测

Part1基于天气数据集的XGBoost分类实践

Step1:库函数导入

Step2:数据读取/载入

Step3:数据信息简单查看

Step4:可视化描述

Step5:对离散变量进行编码

Step6:利用XGBoost进行训练与预测

Step7:利用XGBoost进行特征选择

2

湖南商务职业技术学院毕业设计

Step8:通过调整参数获得更好的效果

2开发环境和工具

2.1使用平台

2.1.1ModelWhale

ModelWhale,和鲸科技旗下数据科学平台。将数据管理、建模分析、模型

训练管理、算力资源管理、任务管理等功能深度整合,支持Python和R语言,

通过逐级开放的数据基础设施、JupyterNotebook交互式和anvas拖拽式两种分

析界面、即开即用的云端分析环境,为科研工作者及团队解决数据安全应用、

底层工程繁复、研究成果流转复现困难等问题,使数据驱动的研究更便捷高效。

简化工程复杂度以契合科研工作者工程力的产品设计理念,为用户带来流

畅的使用体验,使ModelWhale在科研领域得到广泛关注、高度评价。目前已

有众多顶尖科研机构30.000+用户通过ModeWhale进行数十万次科研分析,

典型应用场景涵盖数据分析、开放协作、科研管理、教学管理、数据算力等资

源管理。

图2-1ModelWhale平台展示图

2.1.2Python简介

Python是一门优雅而健壮的编程语言,它继承了传统编译语言的强大性和

通用性,同时也借鉴了脚本语言和解释语言的易用性。

Python是完全面向对象的编程语言,函数、模块、数字、字符串等内置类

3

湖南商务职业技术学院毕业设计

型都是对象。它的类支持多态、操作符重载、和多重继承等高级OOP概念,并

且Python特有的简洁的语法和类型使得OOP十分易于使用。当然OOP只是

Python的一个选择而已,就像C++一样,Python既支持面向对象编程,也支持

面向过程编程的模式。

2.1.3Python第三方库简介

在实践的最开始,我们首先需要导入一些基础的函数库包括:numpy,pandas,

matplotlib和seaborn绘图。

Numpy:是Python进行科学计算的基础软件包。

Pandas:是一种快速,强大,灵活且易于使用的开源数据分析和处理工具。

Matplotlib:绘图库,主要是偏向于二维绘图包括折线图、条形图、扇形图、

散点图、直方图等等

Seaborn:是基于Python且非常受欢迎的图形可视化库,在Matplotlib的

基础上,进行了更高级的封装,使得作图更加方便快捷。

Keras:是一个用Python编写的高级神经网络API,它能够以

TensorFlow,CNTK,或者Theano作为后端运行。

3数据采集与处理

3.1数据加载

图3-1数据集部分展示图

数据集是直接从网站上下载到本地的,如图3-1所示。地址为:

/DSW/7XGBoost/train.c,其中包括

4

湖南商务职业技术学院毕业设计

日期(Date)、地区(Location)、最低温度(MinTemp)、最高温度

(MaxTemp)、降雨量(Rainfall)等字段。其中测试集大小为20%,训练集为80%。

Step1:函数库导入

图3-2导入库代码图

本次我们选择天气数据集进行方法的尝试训练,现在有一些由气象站提供

的每日降雨数据,我们需要根据历史降雨数据来预测明天会下雨的概率。样例

涉及到的测试集数据test.csv与train.csv的格式完全相同,但其RainTomorrow

未给出,为预测变量。

数据的各个特征描述如下:

特征名称意义取值范围

Date日期字符串

Location气象站的地址字符串

MinTemp最低温度实数

MaxTemp最高温度实数

Rainfall降雨量实数

Evaporation蒸发量实数

Sunshine光照时间实数

WindGustDir最强的风的方向字符串

5

湖南商务职业技术学院毕业设计

特征名称意义取值范围

WindGustSpeed最强的风的速度实数

WindDir9am早上9点的风向字符串

WindDir3pm下午3点的风向字符串

WindSpeed9am早上9点的风速实数

WindSpeed3pm下午3点的风速实数

Humidity9am早上9点的湿度实数

Humidity3pm下午3点的湿度实数

Pressure9am早上9点的大气压实数

Pressure3pm早上3点的大气压实数

Cloud9am早上9点的云指数实数

Cloud3pm早上3点的云指数实数

Temp9am早上9点的温度实数

Temp3pm早上3点的温度实数

RainToday今天是否下雨No,Yes

RainTomorrow明天是否下雨No,Yes

表3-1数据的特征描述

Step2:数据读取/载入

这里我们利用Pandas自带的read_csv函数读取并转化为DataFrame格式

data=pd.read_csv('train.csv')

Step3:数据信息简单查看

6

湖南商务职业技术学院毕业设计

这里利用.info()查看数据的整体信息()

图3-3数据整体信息查看结果

然后我们进行简单的数据查看,是利用的.head()头部.tail()尾部进行简单

查看。

图3-4简单数据查看

这里我们发现数据集中存在NaN,一般的我们认为NaN在数据集中代表了

缺失值,可能是数据采集或处理时产生的一种错误。这里我们采用-1将缺失值

进行填补,还有其他例如“中位数填补、平均数填补”的缺失值处理方法

7

湖南商务职业技术学院毕业设计

图3-5采用-1将缺失值进行填补展示图

利用value_counts函数查看训练集标签的数量

图3-6训练集标签数量查看图

从查看图中我们发现数据集中的负样本数量远大于正样本数量,这种常见

的问题叫做“数据不平衡”问题,在某些情况下需要进行一些特殊处理。

3.2可视化描述

图3-7数据可视化代码

然后我们进行可视化描述步骤。为了方便,我们先纪录数字特征与非数字

特征,再选取三个特征与标签组合的散点进行可视化。

8

湖南商务职业技术学院毕业设计

图3-8可视化结果展示

从上图可以发现,在2D情况下不同的特征组合对于第二天下雨与不下雨的

散点分布,以及大概的区分能力。相对的Sunshine与其他特征的组合更具有区

分能力。

利用箱型图我们也可以得到不同类别在不同特征上的分布差异情况。我们

可以发现Sunshine,Humidity3pm,Cloud9am,Cloud3pm的区分能力较强。

3.3特征向量编码

Step5:对离散变量进行编码

由于XGBoost无法处理字符串类型的数据,我们需要一些方法讲字符串数

据转化为数据。一种最简单的方法是把所有的相同类别的特征编码成同一个值,

例如女=0,男=1,狗狗=2,所以最后编码的特征值是在特征数量[0,特征数量−1]

之间的整数。除此之外,还有独热编码、求和编码、留一法编码等等方法可以

获得更好的效果。

9

湖南商务职业技术学院毕业设计

图3-9代码展示效果

图3-10相同类别的特征编码

4模型构建与评估优化

4.1模型的构建

4.1.1定义与训练模型

我们利用XGBoost进行训练与预测,为了正确评估模型性能,将数据划分

为训练集和测试集,并在训练集上训练模型,在测试集上验证模型性能。

其中我们选择其类别为0和1的样本(不包括类别为2的样本),然后将测试

集大小为20%,训练集为80%进行划分。

首先查看标签数据,将替换Yes为1,No为0,然后打印修改后的结果。

10

湖南商务职业技术学院毕业设计

图4-1打印修改后的结果图

然后导入XGBoost模型,定义XGBoost模型,接着在训练集上训练

XGBoost模型。

图4-2模型定义与训练代码展示图

4.1.2模型评估

接着在训练集和测试集上分别利用训练好的模型进行预测,用accuracy(预

测正确的样本数目占总预测样本数目的比例)评估模型效果,然后查看混淆矩

阵(预测值和真实值的各类情况统计矩阵),再利用热力图对结果进行可视化.

图4-3模型评估代码展示

11

湖南商务职业技术学院毕业设计

图4-4输出结果展示图

图4-5热力图可视化

根据结果我们可以发现共有15759+2306个样本预测正确,2470+794个样

本预测错误。

4.2特征选择

Step7:利用XGBoost进行特征选择

图4-6特征的重要度图

12

湖南商务职业技术学院毕业设计

XGBoost的特征选择属于特征选择中的嵌入式方法,在XGboost中可以用

属性feature_importances_去查看特征的重要度。

从图中我们可以发现下午3点的湿度与今天是否下雨是决定第二天是否下

雨最重要的因素。

4.3网格调参法

调节模型参数的方法有贪心算法、网格调参、贝叶斯调参等。这里我们采用

网格调参,它的基本思想是穷举搜索:在所有候选的参数选择中,通过循环遍

历,尝试每一种可能性,表现最好的参数就是最终的结果。

首先从sklearn库中导入网格调参函数,然后进行网格搜索,可以得出网格

搜索后的最好参数为图4-7所展示的。

图4-7网格搜索代码

图4-8最佳参数展示代码

13

湖南商务职业技术学院毕业设计

图4-9得出的最好参数展示图

然后再一次进行模型训练和评估,对结果进行可视化。

图4-10优化参数后可视化结果

根据可视化结果可以知道,原本有2470+790个错误,现在有2112+939

个错误,带来了明显的正确率提升。

5总结

XGBoost的主要优点:

简单易用。相对其他机器学习库,用户可以轻松使用XGBoost并获得相当

不错的效果。

高效可扩展。在处理大规模数据集时速度快效果好,对内存等硬件资源要

求不高。

鲁棒性强。相对于深度学习模型不需要精细调参便能取得接近的效果。

XGBoost内部实现提升树模型,可以自动处理缺失值。

14

湖南商务职业技术学院毕业设计

XGBoost主要缺点:

相对于深度学习模型无法对时空位置建模,不能很好地捕获图像、语音、文本

等高维数据。

X-gboost是将多个树模型(若分类器)集成一个强分类器。可用于分类问题,

也可用于预测值问题,只是不同问题使用的树模型不一样:

分类问题:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论