共享单车需求量登记分类及影响因素分析——基于机器学习模型的比较分析

本文主要是介绍共享单车需求量登记分类及影响因素分析——基于机器学习模型的比较分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者:Yiyi Hu

近年来,共享经济成为社会服务业内的一股重要力量。作为共享经济的一个代表性行业,共享单车快速发展,成为继地铁、公交之后的第三大公共出行方式。但与此同时,它也面临着市场需求不平衡、车辆乱停乱放、车辆检修调度等问题。本项目则着眼于如何不影响市民出行效率的同时,对共享单车进行合理的批量维修工作的问题,利用CART决策树、随机森林以及Xgboost算法对共享单车借用数量进行等级分类,试图通过模型探究其影响因素并分析在何种条件下对共享单车进行批量维修为最优方案。

解决方案

任务/目标

通过机器学习分类模型探究共享单车借用数量的影响因素,并分析在何种条件下对共享单车进行批量维修为最优方案。

数据源准备

该数据集有三个数据来源,分别为交通局天气数据,以及法定假期

数据预处理及可视化

(一)时间:首先从timestamp列中提取了monthhour两列,试图分别从整体、季度、月份、小时四个方面,对共享单车借用总数进行箱图分析。

解决方案

任务/目标

通过机器学习分类模型探究共享单车借用数量的影响因素,并分析在何种条件下对共享单车进行批量维修为最优方案。

数据预处理及可视化

(一)时间:首先从timestamp列中提取了monthhour两列,试图分别从整体、季度、月份、小时四个方面,对共享单车借用总数进行箱图分析。

(二)天气:观察数据特征发现,其中“weather_code”列各类别分别为:1 =晴朗;大致清晰,但有一些值与雾霾//雾斑/雾附近;2 =散云/一些云;3 =碎云/云层疏松;4 =多云;7 =/小雨阵雨/小雨;10 =雨与雷暴;26 =降雪;94 =冻雾。因此,本文对“weather_code”进行重新定义,将 1234 类天气现象定义为宜骑车天气;7102694 类天气现象定义为不宜骑车天气。

(三)共享单车借用数量:“节假日”与“双休日”中共享单车使用数量的分布较为相似,高峰期均在午后。对比发现,“工作日”中单车使用数量的高峰期在 7 点至 9 点,16 点到 19 点这两个时间段呈现为两个明显的波峰,这两个时间段往往是上班下班时间,人流量比较大,因而数据的呈现比较符合实际的规律。因此,绝对将“is_holiday”列与“is_weekend”列联合进行分组,合并为“is_non_workday,分为工作组与非工作日组。

(四)温度:图 5-4 为各变量之间的相关系数矩阵,发现温度“t1”列与体感温度“t2”列之间存在较高的相关性,且天气温度数据更加客观,因此选择仅保留“t1”列。各个变量之间的均呈现中弱相关性。此外,各变量与因变量“count_log”列均存在一定的相关性,但相关强度不一。

(五)经观察“count_log”箱图发现,该数据仍存在着少量异常值。因此,为了提高结果的准确性,选择删去 16 个过低的数值,剩余 17398 组数据。

在进行预处理后,本文已经对共享单车中的变量进行了筛选与调整,保留了 hourt1is_non_workdayweather_codewind_speedhumseason 7 个特征变量。在正 式建立模型之前,对于因变量“count_log”进行等频分箱,将其分成了五类,命名为 category。当保证类别平衡,即每类数据的样本量接近,算法会有更好的效果。对于温度、湿度等连续性变量,为使得最后结果的准确性,并未对其进行分箱。

接下来,本文对所有的特征变量进行了归一化处理,为了归纳统一样本的统计分布性, 本文选取 75%的数据划分为训练集,25%的数据作为测试集。

建模

CART决策树:

CART 算法易于理解和实现,人们在通过解释后都有能力去理解决策树所表达的意义。 并且能够同时处理分类型与数值型属性且对缺失值不敏感。

随机森林

使用随机森林模型在进行分类时,需要现在经过训练的决策树中输入测试样本,这棵决策树的分类便可以由各叶子节点的输出结果而确定;再根据所有决策树的分类结果,从而求得随机森林对测试样本的最终评价结果。

使用自助法随机地抽样得到决策树的输入样本和选取最佳的分割标准在决策树的节点上随机地选取特征进行分割是随机森林的两大优点,正是这些优势使得随机森林具备了良好的容忍噪声的能力,且使得决策树之间的相关性有所降低。随机森林中的决策树还具备了任意生长但不被修剪的特点,因此这些决策树的偏差较低,有利于提高评价的准确度。

Xgboost

Xgboost 作为一种新型的集成学习方法,优点颇多。首先,他在代价函数里加入了正则化项,用于控制模型的复杂度,有效防止了过拟合。其次,Xgboost 支持并行处理,众所周知,决策树的学习最耗时的一个步骤是对特征的值进行排序,Xgboost 在训练之前预先对数据进行了排序,然后保存为 block 结构,后面的迭代中重复使用这个结构,大大减小了计算量。再次,Xgboost 算法灵活性高,它支持用户自定义目标函数和评估函数,只要保证目标函数二阶可导即可,并且对于特征值有缺失的样本,可以自动学习出它的分裂方向。最后,Xgboost 先从顶到底建立所有可以建立的子树,再从底到顶反向进行剪枝,这样不容易陷入局部最优解。

本文分别利用 CART 决策树、随机森林以及 Xgboost 算法对共享单车借用数量进行等级分类,并对三个方法进行精度测试,发现通过 Xgboost 算法分类效果最好,经过调参后,训练集模型精确度高达 0.92,测试集精确度为 0.83。分析分类结果以及各因素的重要性发现,时间、风速、湿度、温度四个因素对共享单车使用量存在较高的影响,因此维修部门可以选在凌晨阶段,或者风速较大、温度过低或过高的时期对共享单车进行合理的批量维修,避开市民用车高峰,保证市民出行效率以及用车安全。

关于作者


在此对Yiyi Hu对本文所作的贡献表示诚挚感谢,她毕业于上海财经大学,专长时间序列预测、回归分析、多元统计、数据清洗、处理及可视化、基础机器学习模型以及集成模型。


这篇关于共享单车需求量登记分类及影响因素分析——基于机器学习模型的比较分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/319149

相关文章

NFS实现多服务器文件的共享的方法步骤

《NFS实现多服务器文件的共享的方法步骤》NFS允许网络中的计算机之间共享资源,客户端可以透明地读写远端NFS服务器上的文件,本文就来介绍一下NFS实现多服务器文件的共享的方法步骤,感兴趣的可以了解一... 目录一、简介二、部署1、准备1、服务端和客户端:安装nfs-utils2、服务端:创建共享目录3、服

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

Redis主从/哨兵机制原理分析

《Redis主从/哨兵机制原理分析》本文介绍了Redis的主从复制和哨兵机制,主从复制实现了数据的热备份和负载均衡,而哨兵机制可以监控Redis集群,实现自动故障转移,哨兵机制通过监控、下线、选举和故... 目录一、主从复制1.1 什么是主从复制1.2 主从复制的作用1.3 主从复制原理1.3.1 全量复制

Redis主从复制的原理分析

《Redis主从复制的原理分析》Redis主从复制通过将数据镜像到多个从节点,实现高可用性和扩展性,主从复制包括初次全量同步和增量同步两个阶段,为优化复制性能,可以采用AOF持久化、调整复制超时时间、... 目录Redis主从复制的原理主从复制概述配置主从复制数据同步过程复制一致性与延迟故障转移机制监控与维

Redis连接失败:客户端IP不在白名单中的问题分析与解决方案

《Redis连接失败:客户端IP不在白名单中的问题分析与解决方案》在现代分布式系统中,Redis作为一种高性能的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景,然而,在实际使用过程中,我们可能... 目录一、问题背景二、错误分析1. 错误信息解读2. 根本原因三、解决方案1. 将客户端IP添加到Re

使用Nginx来共享文件的详细教程

《使用Nginx来共享文件的详细教程》有时我们想共享电脑上的某些文件,一个比较方便的做法是,开一个HTTP服务,指向文件所在的目录,这次我们用nginx来实现这个需求,本文将通过代码示例一步步教你使用... 在本教程中,我们将向您展示如何使用开源 Web 服务器 Nginx 设置文件共享服务器步骤 0 —

Redis主从复制实现原理分析

《Redis主从复制实现原理分析》Redis主从复制通过Sync和CommandPropagate阶段实现数据同步,2.8版本后引入Psync指令,根据复制偏移量进行全量或部分同步,优化了数据传输效率... 目录Redis主DodMIK从复制实现原理实现原理Psync: 2.8版本后总结Redis主从复制实

锐捷和腾达哪个好? 两个品牌路由器对比分析

《锐捷和腾达哪个好?两个品牌路由器对比分析》在选择路由器时,Tenda和锐捷都是备受关注的品牌,各自有独特的产品特点和市场定位,选择哪个品牌的路由器更合适,实际上取决于你的具体需求和使用场景,我们从... 在选购路由器时,锐捷和腾达都是市场上备受关注的品牌,但它们的定位和特点却有所不同。锐捷更偏向企业级和专

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

Spring中Bean有关NullPointerException异常的原因分析

《Spring中Bean有关NullPointerException异常的原因分析》在Spring中使用@Autowired注解注入的bean不能在静态上下文中访问,否则会导致NullPointerE... 目录Spring中Bean有关NullPointerException异常的原因问题描述解决方案总结