基于 xgboost...

13
基于 Xgboost 算法的共享自行车短时需求预测研究 张筑杰 1 ,胡郁葱 2 1.华南理工大学 土木与交通学院,广东 广州 5106412. 华南理工大学 土木与交通学院,广东 广州 510641摘要:对共享自行车系统短时需求进行预测,是准确制定共享自行车投放规模以及调度策略 的重要依据。 Xgboost 是近年来一种基于分类和回归树的热门算法,具有快速的数据处理能 力,准确性高的优点。本文以某市 2015 1 月份-8 月份的公共自行车数据,类比经过聚类 后的共享自行车需求,并考虑了天气因素,节假日因素,还有站点之间的相关性,构建特征 向量,利用 Xgboost 算法对共享自行车短时需求进行预测并将结果与基于 BP 神经网络模型、 ARMA 模型和 KNN 算法的预测结果进行比较。结果表明: Xgboost 算法模型精度更高,运算效 率也更高。 关键词:共享自行车;短时需求预测;Xgboost 算法 Bike-sharing Short Term Demand Forecasting Based on Xgboost ZhuJie Zhang 1, Yucong Hu 2* (1 Department of Civil Engineering and Transportation, South China University of Technology, Guangzhou, China; 2 Department of Civil Engineering and Transportation, South China University of Technology, Guangzhou, China) Abstract: Forecasting short-term demand of the Bike-sharing system is important for formulating the scale of Bike-sharing system accurately and developing strategy of the bicycle deployment. Xgboost is a popular algorithm based on classification and regression trees in recent years. It has the advantages of fast data-processing capability and high accuracy. This article uses public bike usage data in a city from January to August in 2015.These data is an analogy of the demand data of shared bicycles after clustering. We take weather, holiday factors, and the correlation between sites factor into account, and we also add these factors to the characteristics. Then Xgboost algorithm is used to predict sites short-term demand. We discuss the results by comparing Xgboost with BP neural network model, ARMA model and KNN algorithm. The results show that Xgboost algorithm has higher accuracy and higher computational efficiency. Key wordsBike-sharing; Short-term demand forecasting; Xgboost;

Upload: others

Post on 22-May-2020

24 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 基于 Xgboost 算法的共享自行车短时需求预测研究road.cnki.net/download/jtdh/1801311657410001.pdf · Xgboost is a popular algorithm based on classification and regression

基于 Xgboost 算法的共享自行车短时需求预测研究

张筑杰 1,胡郁葱 2

(1.华南理工大学 土木与交通学院,广东 广州 510641; 2. 华南理工大学 土木与交通学院,广东 广州 510641)

摘要:对共享自行车系统短时需求进行预测,是准确制定共享自行车投放规模以及调度策略

的重要依据。Xgboost是近年来一种基于分类和回归树的热门算法,具有快速的数据处理能

力,准确性高的优点。本文以某市 2015年 1月份-8月份的公共自行车数据,类比经过聚类

后的共享自行车需求,并考虑了天气因素,节假日因素,还有站点之间的相关性,构建特征

向量,利用Xgboost算法对共享自行车短时需求进行预测并将结果与基于BP神经网络模型、

ARMA模型和 KNN 算法的预测结果进行比较。结果表明:Xgboost算法模型精度更高,运算效

率也更高。

关键词:共享自行车;短时需求预测;Xgboost算法

Bike-sharing Short Term Demand Forecasting Based on Xgboost ZhuJie Zhang 1, Yucong Hu 2*

(1 Department of Civil Engineering and Transportation, South China University of Technology, Guangzhou, China;

2 Department of Civil Engineering and Transportation, South China University of Technology, Guangzhou, China)

Abstract: Forecasting short-term demand of the Bike-sharing system is important for formulating

the scale of Bike-sharing system accurately and developing strategy of the bicycle deployment.

Xgboost is a popular algorithm based on classification and regression trees in recent years. It has

the advantages of fast data-processing capability and high accuracy. This article uses public bike

usage data in a city from January to August in 2015.These data is an analogy of the demand data

of shared bicycles after clustering. We take weather, holiday factors, and the correlation between

sites factor into account, and we also add these factors to the characteristics. Then Xgboost

algorithm is used to predict sites short-term demand. We discuss the results by comparing Xgboost

with BP neural network model, ARMA model and KNN algorithm. The results show that Xgboost

algorithm has higher accuracy and higher computational efficiency.

Key words:Bike-sharing; Short-term demand forecasting; Xgboost;

Page 2: 基于 Xgboost 算法的共享自行车短时需求预测研究road.cnki.net/download/jtdh/1801311657410001.pdf · Xgboost is a popular algorithm based on classification and regression

一、引言

共享自行车系统由于利用移动互联网与传统的公共自行车结合而摆脱了传统停车桩的

限制,通过与公共交通“最后一公里”衔接,给居民带来了极大的便利。然而,共享自行车

需求的区域不均衡性,导致局部区域的资源过剩与资源短缺矛盾突出,影响了用户对共享自

行车的使用意愿。合理确定使用需求,优化投放规模和调度策略是提高共享自行车资源使用

效率的重要途径,而其核心技术就是对共享自行车的短时需求进行预测,即在前一时段预测

下一时段各站点的共享自行车需求数量,利用调度手段调整各站点自行车规模,以最大限度

地满足用户需求。

国外对于有固定站点的公共自行车系统需求预测研究比较深入,针对性地对自行车站点

的数据的规律进行研究,包括考虑自行车的历史使用模式,乘客出行习惯的影响。其主要使

用的预测方法主要包括数据挖掘的方法,机器学习方法以及传统的参数方法(如 ARMA)[1]。

国内学者们主要是基于交通出行理论[2],对公共自行车需求进行预测,以预测结果来确定调

度车数并建立租赁点短期需求预测模型;也有对不同用地性质租赁点借还需求进行分析,对

交通小区的公共自行车的需求量进行预测[3],国内学者们关注的多是宏观上公共自行车系统

整体的调配需求总量,较少对具体公共自行车站点的短时借还需求研究。

无论是国内还是国外,目前对无桩式共享自行车的短时需求预测的研究成果几乎未见报

道。总结国内外研究成果,发现在自行车短时需求预测研究中,主要存在以下两个问题:

1、研究的相关因素太少: 多数研究为了简化运算,选择的相关因素(特征向量)都比较

理想化,并没有将天气,特殊节假日等因素考虑进去,而自行车需求很大程度上会受到天气,

特殊节假日这些因素的影响;并且,现有研究多数只是针对单个站点的短时需求预测,而忽

略了站点与站点之间的相关性。

2、目前自行车短时需求预测方法,主要采用参数模型进行预测。常用的参数模型主要

包括移动平均法,指数平滑法,Box-Jenkins,ARIMA 等,这类方法大多都是非常有效的而且

得到的结果是严格的。但是这些方法是建立在有效的先验知识(例如交通参数)的前提下的,

并且依赖于一系列的假设,这往往无法解决一些高度非线性的,复杂的问题。

非参数模型在处理高度非线性数据比传统参数模型具有优势,其实现起来更加简单。近

年来,非参数模型开始广泛应用于短时交通预测,主要有高斯最大似然估计,Kalman 滤波

模型,支持向量机模型,小波分析法, 贝叶斯网络等。非参数模型的优点是处理快速,可以

对大量非线性,复杂的数据进行处理。

Page 3: 基于 Xgboost 算法的共享自行车短时需求预测研究road.cnki.net/download/jtdh/1801311657410001.pdf · Xgboost is a popular algorithm based on classification and regression

Xgboost 算法属于非参数模型,也是监督学习的一种[4]。它是一种基于分类和回归树的

算法,属于连续的集成学习模型,其基本思想通过一系列弱分类器的迭代计算实现准确的分

类效果。使用Xgboost的优势在于快速对特征级数据进行训练,预测结果精度高,并且Xgboost

可以有效解决高维度问题,避免了“维度的诅咒”。由于其具有数据处理快和准确度较高的

特点,Xgboost 活跃于各种大型数据竞赛中,在 2015 年的 Kaggle 的 29 个赛题中,17 个赛题

的解决方案使用了 Xgboost 算法[4]。

为准确实现对共享自行车站点短时需求的预测,本文考虑加入天气、特殊节日和站点之

间相关性因素的影响,这会大大增加计算的复杂度,而应用 Xgboost 算法进行短时需求预测

可以提高预测的精确度,并且能高效的处理短时需求预测问题。由于共享自行车企业一般不

直接提供数据,本文以某市公共自行车系统数据模拟聚类后的共享自行车站点需求,使用

Xgboost 算法进行站点需求短时预测,并对该方法的效果进行了检验。

二、基于 Xgboost算法的预测

Xgboost 的全称是 eXtreme Gradient Boosting,即极端梯度提升树,是梯度提升机器算法

(Gradient Boosting Machine)的扩展[4]。Boosting 是一种连续的集成学习模型,其基本思想

通过一系列弱分类器的迭代计算实现准确的分类效果。该模型不断迭代,每次迭代生成一棵

新的树,如何在每一步生成合理的树是 boosting 分类器的核心。Gradient Boosting Machine

算法在生成每一棵树的时候采用梯度下降的思想,以上一步生成的所有树为基础。在合理的

参数设置下,Boosting 算法往往要生成一定数量的树才能达到令人满意的准确率。

在数据集较复杂的情况下,可能需要几千次迭代运算,这样使得算法时间复杂度变得

特别高,从而无法达到快速响应的需求,使得算法失去了原有的效用。Xgboost 很好的解决

了 Boosting 算法无法高效的处理复杂数据集的问题,它能够自动利用 CPU 的多线程进行并

行,同时在算法上加以改进提高了精度。Xgboost 的基分类器是分类和回归树(CART),其损

失函数保留了泰勒展开的二次项,能分布式处理高维稀疏特征,这些特点也是 Xgboost 处理

速度快的主要原因[4]。

Xgboost 的目标函数(包括训练误差和正则化项)为:

( )

1 1

( , ) ( )ˆn K

t

i i ki k

obj l y y f= =

= + Ω∑ ∑ (3)

其中,1

( , )ˆn

i ii

l y y=∑ 为训练误差,

1

( )K

kk

f=

Ω∑ 为正则化项,i

y 表示真实值,i

y 表示估

Page 4: 基于 Xgboost 算法的共享自行车短时需求预测研究road.cnki.net/download/jtdh/1801311657410001.pdf · Xgboost is a popular algorithm based on classification and regression

计值,kf 表示估计函数。

三、实例分析

Xgboost 共享自行车短时需求预测的流程为数据预处理及数据选取、聚类分析、相关分

析、构建特征向量、利用 Xgboost 进行预测,见图 1。

图 1 Xgboost 共享自行车短时需求预测流程图

下面对 Xgboost 共享自行车短时需求预测的流程进行具体阐述。

(一)数据准备

本文以某市公共自行车系统数据模拟聚类后的共享自行车站点需求。具体数据主要来源

于某市 2015 年 1 月至 8 月份的公共自行车数据,将其类比成已经过一次聚类后的共享自行

车数据。整个数据集一共有 2132694 条记录,训练集里只有 318 个站点的数据。对于一些数

据记录不完整或者记录较少的站点给予剔除,最后得出有效站点 117 个。数据包含的主要的

信息包括:借车日期、借车时间、骑行分钟、超时分钟、借车站点号、车位、车卡、借车卡、

还车站点号、还车车位、还车日期、还车时间、操作类型、操作名称。另外,抓取该市 2015

年 1 月至 8 月份的天气信息,将天气分成了四种情况晴天、阴天、雨天、暴雨。

主要选取 2015 年 1 月 1 日至 8 月 24 日的公共自行车的各站点借车数据作为训练数据。

考虑到每天站点借车数量较小,选取一天作为时间间隔进行划分,得出 117 个站点中,每个

站点包含 216 组数据,将 2015 年 8 月 25 日~8 月 31 日一周的各站点借车数据作为测试数

据,117 个站点中每个站点包含 7 组数据。

下图主要为部分站点的 2015 年 1 月 1 日至 8 月 31 日的借车数量图。可以看出数据呈

非线性,站点的借车数量的波动并没有强规律性,随时间波动的规律也不是很明显,初步分

析站点的借车数量受多种因素的影响,用传统的参数方法难以准确预测。

Page 5: 基于 Xgboost 算法的共享自行车短时需求预测研究road.cnki.net/download/jtdh/1801311657410001.pdf · Xgboost is a popular algorithm based on classification and regression

图 2 部分站点借车数量图

(二)聚类分析

当站点数量较少时,可以直接进行相关分析之后再选取相关系数高的站点进行下一步分

析。但是考虑到目前共享自行车的现状,一个大城市虚拟停车站点数量通常超过几千个,此

时相关分析的时间复杂度为 ,n 表示站点数,y 表示站点的数据量,因此,当 n 和 y 都变得

很大时,直接进行相关分析的时间复杂度呈指数级增加。此时,先进行聚类,再针对聚类的

结果进行相关分析,可以大大提高算法的效率。

目前,主流的聚类算法有 k-means (KM) (Tan et al., 2006)[5],EM 算法(Expectation

Maximization Algorithm)还有 sIB 算法(sequential Information-Bottleneck)(Slonim et al.,

2002)[6] 。另外,在进行聚类分析之前要先确定聚类的类别的数量。主要的方法有 DBI(Davies-

Bouldin Index)方法(Jain and Dubes, 1988) [7] ,DI(Dunn Index)方法(Abonyi and Feil, 2007)[ 8]。

DBI 越小,说明聚类效果越好。相反,DI 越高,聚类效果越好。DBI 方法使用欧氏距离,在

应用于 k-means 聚类方法上具有良好的效果。本文主要使用 k-means 聚类方法,并且采用欧

式距离进行聚类,因此本文采用 DBI 方法来判断聚类的类别的数量。

本文将自行车的站点定义为初始点,假设任意一点 X 为维度 d,对于 A,B 两点,则点

1 2[ , , , ]

dA a a a= L ,点

1 2[ , , ]

dB b b b= L ,则 A 与 B 点的欧氏距离被定义为:

2

1

( )d

i ii

a b a b=

− = −∑ (1)

然后根据 DBI 方法对聚类数量进行判断。从图中可以看出,在 k=9 次,DBI 值降到最低。

根据肘部法则[9],确定最佳的聚类数量的值为 9。

Page 6: 基于 Xgboost 算法的共享自行车短时需求预测研究road.cnki.net/download/jtdh/1801311657410001.pdf · Xgboost is a popular algorithm based on classification and regression

图 3 DBI 指标图

训练数据中包含 117 个站点,以每个站点 2015 年 1 月 1 日至 8 月 24 日的每日借车数

量作为该站点的向量,每个向量包含 237 个元素,共计 117 个向量,利用 k-means 聚类算法

对这 117 个向量进行聚类,距离测度选用欧式距离,算法采用误差平方和准则函数作为聚类

准则函数,当算法迭代至 14 次,达到损失值最小,之后保持不变。具体数据如下表:

表 1 k-means的迭代次数表

迭代次数 损失值

1 22373465 2 5393034 3 4503090 4 4116672 5 3904822 6 3791822 7 3728311 8 3677568 9 3664345 10 3654839 11 3637998 12 3629290 13 3620009 14 3618023 15 3618023 16 3618023

(三)相关分析

常用的相关分析的方法主要有图表相关分析、协方差及协方差矩阵、相关系数(相关系

数主要有 Pearson 相关系数,Spearman 秩相关系数,Kendall 相关系数)。由于图表的相关分

析局限于低维度的数据,当数据超过二维时,难以通过观察图表得出特征之间的相关性。另

Page 7: 基于 Xgboost 算法的共享自行车短时需求预测研究road.cnki.net/download/jtdh/1801311657410001.pdf · Xgboost is a popular algorithm based on classification and regression

外,协方差通过数字衡量变量间的相关性,正值表示正相关,负值表示负相关,但无法对相

关的密切程度进行度量。因此,本文选择相关系数法进行相关分析。考虑到 Spearman 秩相

关系数,Kendall 相关系数均需要利用数据的秩,在进行高维的相关分析均比较复杂,因此

本文选择 Pearson 相关系数进行相关分析。当相关系数超过 0.5 则认为两种因素呈强相关关

系。

根据聚类分析的结果,对各类别的站点之间进行相关分析。由于篇幅的限制,本文一共

得出 9 类数据,下面为第 3 类的相关系数数据,具体数据如下表所示:

表 2 部分站点相关系数表

20 1.0000

30 0.7625 1.0000

119 0.7584 0.6876 1.0000

161 0.7543 0.7765 0.6449 1.0000

170 0.8369 0.7949 0.7255 0.8699 1.0000

175 0.7258 0.6952 0.6482 0.7607 0.8319 1.0000

189 0.7211 0.6252 0.6243 0.6618 0.7004 0.6469 1.0000 站点 20 30 119 161 170 175 189

由表中可以看出,各站点之间的相关系数均大于 0.6,表示各站点呈强相关关系,这也

反映出聚类结果的有效性。

但是,由于此时的相关分析是针对各站点同时期进行的,然而在进行某一站点需求预测

时,并不能获取其他与之相关站点的需求量,因为其他站点的需求量同样是未知的。所以,

要进一步对与该站点相关的几个站点前几期的需求进行相关分析, 得出该站点当天的需求

量与其他与之相关的站点的前一天的需求量相关性最高,并且随着时间越长,相关性越低。

因此,主要选取与该站点相关的其他站点的前一天的需求量作为特征值。并对聚类行成的站

点当天需求量与其他站点前一天需求量进行相关分析,部分站点数据图下表:

表 3 站点 20 与其他站点的前一天需求量相关系数表

站点 20 30 119 161 170 175 189 20 1 0.5051 0.4507 0.4884 0.5072 0.3913 0.4076

通过相关相关分析结果选取相关程度高的站点的前一天需求量作为特征向量。如站点

20,根据商标,站点 30 和 170 对应的相关系数大于 0.5,故选取站点 30,170 的前一天需求

量作为其特征向量。

(四)构建特征向量

本文选取的特征向量主要包括前两周每天的借车数量、工作日、周末、天气、寒暑假、

Page 8: 基于 Xgboost 算法的共享自行车短时需求预测研究road.cnki.net/download/jtdh/1801311657410001.pdf · Xgboost is a popular algorithm based on classification and regression

特殊节假日、季节,其中前两周每天的借车数量一共包含 14 个特征,工作日包含星期一至

星期五 5 个特征,周末包括星期六,星期天 2 个特征,寒暑假则包含寒假,暑假 2 个特征,

特殊节假日不具体细分,包含 1 个特征,季节包含冬天,春天,夏天 3 个特征,一共 27 个

特征。根据相关分析的结果,加入新的特征向量。新的特征向量如下表所示:

表 4 特征向量表

前两周每天的

借车数量

工作

寒暑

特殊

节假日

相关程度高的站点

的前一天借车数量

(五)利用 xgboost 进行预测

而优化 Xgboost 的目标函数主要通过求解 CART 树(回归树)的结构和叶分数。首先,

目标函数的训练误差主要通过加法训练进行优化,具体步骤如下:

(0)

(1) (0)

(2) (1)

( ) ( 1)

i

i 1 i 1

i 2 i 2

i i

1

y 0ˆ

y ( ) y ( )ˆ ˆ

y ( ) y ( )ˆ ˆ

y ( ) y ( )ˆ ˆt t

i i

i i

t

k i t i

k

f x f x

f x f x

f x f x−

=

== = += = +

= = +∑

L (2)

运用加法训练,分步骤优化目标函数,首先优化第一棵树,结束之后再优化第二棵树,

直至优化完 K 棵树。首先假设模型初始估计值 ,每次添加一个新的函数(树),迭代计算第 t

轮模型输出预测值。

然后对模型正则化项进行优化,将模型正则化项定义为叶结点总数和叶节点权值平方和

函数:

2

1

1(ft)= T+

2

T

jj

wγ λ=

Ω ∑ (3)

其中, Tγ 表示叶结点总数,2

1

1

2

T

jj

wλ=∑

表示w 的 2L 模平方,γ 越大,表示越希望获得结

构简单的树,因为此时对较多叶子节点的树的惩罚越大。λ越大也是越希望获得结构简单

的树。Xgboost 算法中对树的复杂度项增加了一个 L2 正则化项,针对每个叶结点的得分增

加 L2 平滑,目的也是为了避免过拟合。

在 Python Xgboost 开源库中,可选取的目标函数有线性回归,逻辑回归等,误差函数有

均方根误差(rmse),平均绝对误差(mae),二分类错误率(error)等等。本文主要采用

xgboost 的目标函数为线性回归,误差函数选择 rmse 或者 mae。

Page 9: 基于 Xgboost 算法的共享自行车短时需求预测研究road.cnki.net/download/jtdh/1801311657410001.pdf · Xgboost is a popular algorithm based on classification and regression

然后将上文提到的特征值进行构建特征向量,利用 xgboost 法进行预测当前时段的借还

车数量,并计算目标函数 ,并找出最优树结构和叶子节点的值。并对特征向量进行评分,

按照特征向量的重要性进行排序。

下图使用 xgboost 算法测出的某一站点的特征向量评分图:

图 4 特征向量评分图

对所有站点的特征重要性进行分析得出,前一天借车数量对预测当天的借车数量影响最

大,117 个站点中 105 个站点的前一天借车数量的重要性都是排第一的,所占比率为 89.7%;

当天的前二天,前三天的借车数量同样对预测当天的借车数量影响也很大,前二天借车数量

的重要性都是排第二的站点所占比率为 77.8%,前三天的借车数量的重要性都是排第三的站

点所占比率为 52.1%。其他特征的重要性依次下降,因不同站点而异。

另外,冬天这个因素对大部分站点影响则很少,有 14 个站点中的冬天的重要性几乎为

0。而天气因素的重要性在所有因素中除了前两周的借车数量这些因素之外,重要性最大。

寒暑假因素则对于个别站点影响较大,比如站点 30,70,78 则受暑假的影响较大,而站点

84,158 则受寒假的影响较大。特殊假节日这个因素对于部分站点影响较大,比如站点 8,101,

其重要性排在第六。

在 Python Xgboost 库中,对目标函数的优化主要是通过调参来达到目的,通过调整收缩

步长(eta)、树的最大深度(max_depth)或者训练模型的子样本(subsample)占整个样本

集合的比例等参数,以达到优化目标函数的目的。

下一章具体阐述 Xgboost 预测结果并进行比较分析。

Page 10: 基于 Xgboost 算法的共享自行车短时需求预测研究road.cnki.net/download/jtdh/1801311657410001.pdf · Xgboost is a popular algorithm based on classification and regression

四、共享自行车短时需求预测结果评估

本文主要使用平均绝对误差(Mean Absolute Error,MAE),平均绝对百分比误差(Mean

Absolute Percentage Error,MAPE),均方根误差(Root Mean Square Error,RMSE),模型训练

时间(Time)四项指标对模型的精度和有效性进行评价。

下图为部分站点的 2015 年 8 月 25 日至 2015 年 8 月 31 日一周的预测值与真实值的对

比图,总体上利用 Xgboost 进行预测,预测值与真实值的十分接近,变化的趋势也基本一致,

比如站点 5,6,7(还有大部分站点),但是也有出现部分站点(如站点 8),使用 Xgboost 对于

一些波动比较大的数据无法准确预测。

图 5 部分站点真实值与预测值对比图

另外,为分析本文方法的预测准确性与效率,将 Xgboost 和基于 BP 神经网络的、基于

参数方法 ARMA 的、基于 K 最近邻方法的短时需求预测方法结果进行比较(训练时间是包

括所有站点的训练时间)。评价结果见图 6 和表 5。

Page 11: 基于 Xgboost 算法的共享自行车短时需求预测研究road.cnki.net/download/jtdh/1801311657410001.pdf · Xgboost is a popular algorithm based on classification and regression

图 6四种算法效果对比图

表 5四种算法的一周的指标平均值对比表

xgboost 法 BP 神经网络 ARMA 模型 KNN 算法

MAE 6.54 11.89 11.02 13.08

MAPE 13.47% 17.17% 15.66% 18.01%

RMSE 10.47 14.89 16.25 11.55

模型训练时间(m) 1.63 10.04 11.14 1.78

分析上面的评价结果图和表,比较所有预测数据的预测结果,xgboost 算法的预测效果

好于其他算法:

(1)Xgboost 算法的 MAE、MAPE 均低于另外三个模型,说明其预测结果与真值的差距

更小,模型精度更高;

(2)Xgboost 算法的 RMSE 也均低于另外三个模型,说明其预测结果与真值的偏差波动

幅度更小,模型结果更可靠。

(3)在模型的训练时间方面,KNN与 XGBoost算法模型表现的最好,模型训练时间在

2分钟以内,ARMA模型耗时最长。XGBoost算法计算速度也相当可观,得益于其原生语言为

C/C++,在进行节点的分裂时,支持各个特征多线程进行增益计算,因此算法计算速度更

快。

Page 12: 基于 Xgboost 算法的共享自行车短时需求预测研究road.cnki.net/download/jtdh/1801311657410001.pdf · Xgboost is a popular algorithm based on classification and regression

而Xgboost的缺点使用Xgboost对于一些波动比较大的数据无法准确预测。对于当自行

车站点数量比较少的情况下,整体站点的误差容易受到个别误差大的站点所影响,使得整

体误差变大。当自行车站点数量比较大的情况下,使用Xgboost进行预测整体的平均误差比

较小,使用Xgboost效果则比较好。

五、结语

相对于以往的只是针对站点自身的需求数据进行短时需求预测的研究,本文从特征级

的角度考虑了天气因素,节假日因素,还有站点之间的相关性,并将这些因素加入到特征向

量应用于共享自行车站点短时需求预测。并利用 Xgboost 算法求解,将结果与与 BP 神经网

络模型、ARMA 模型和 K 最近邻算法进行了对比分析,得出 Xgboost 算法预测的效果最为稳

定,各天的指标值波动都较小,具有很强的鲁棒性。但是,在应用 Xgboost 算法的过程中,

Xgboost 对于一些波动比较大的数据无法准确预测,造成个别站点的误差较大,后续可以针

对这些特点对 Xgboost 算法进行改进。另外,本文所采用的数据为公共自行车数据,每日的

借车数量相对较少,只是针对以天为时间间隔进行预测的实时性较低,未来使用共享自行车

数据时,可以通过进一步分时段进行预测(例如分成每个小时的借车数量),以提高短时预

测的实时性和精确度。

参考文献

[1] Jayant Malani et al. Forecasting Bike Sharing Demand

[2]何流,李旭宏,陈大伟,卢静,吴圆圆.公共自行车动态调度系统需求预测模型研究[J].武汉理

工大学学报(交通科学与工程版),2013,37(02):278-282.

[3]张建国. 城市公共自行车车辆调配问题研究[D].西南交通大学,2013.

[4] Tianqi Chen, Carlos Guestrin.2016. XGBoost: A Scalable Tree Boosting System

[5] Tan, Steinbach, M. & Kumar,V. (2006). Introduction to Data Mining. Pearson Addison-Wesley.

[6] Slonim, N., Friedman, N. & Tishby, N. (2002). Unsupervised document classification using

sequential information maximization. In: Beaulieu.M. (Ed.): SIGIR 2002. Tampere. Finland. 129 –

136.

[7] Jain, A. K. & Dubes, R. C. (1988). Algorithms for clustering data. Prentice-Hall.

[8] Abonyi, J. & Feil, B. (2007).Cluster Analysis for Data Mining and System Identification. Birkhäuser

Verlag AG.

[9]Cyril Goutte, Peter Toft, Egill Rostrup, Finn Årup Nielsen, Lars Kai Hansen (March 1999). "On

Page 13: 基于 Xgboost 算法的共享自行车短时需求预测研究road.cnki.net/download/jtdh/1801311657410001.pdf · Xgboost is a popular algorithm based on classification and regression

Clustering fMRI Time Series"

作者简介:

张筑杰(学生) 华南理工大学土木与交通学院 13826443459 [email protected]

胡郁葱(副教授) 华南理工大学土木与交通学院 13539781866 [email protected]