基于机器学习的共享单车轨迹大数据分析
摘要:随着城市的发展,交通拥堵与环境污染问题逐渐严重,共享单车是我国推出的一种绿色便捷的出行方式,随着共享单车的普及,其也产生了大量的轨迹数据,目前对共享单车轨迹的数据分析应用比较落后,特地地区的共享单车的使用情况不能合理调度,导致共享单车投放区域不合理,影响市民的出行。基于此本文选择机器学习的共享单车轨迹大数据分析课题进行研究。
本文以共享单车轨迹数据为基础进行研究,采用线性回归和岭回归算法建立共享单车使用量预测模型。本文主要实现:(1)通过CDSN等网站收集共享单车数据,对共享单车数据元素进行描述,并统计共享单车数据的缺少值情况并进行阐述,对假期、工作日、天气等数据进行数值化处理;检测并删除重复的共享单车数据,防止共享单车模型训练过拟合;(2)分析共享单车数据特征与用户数量之间关系,并绘制可视化图;(3)以线性回归算法和岭回归算法实现共享单车使用量预测模型,并通过模型的评估报告对共享单车使用量预测模型进行评估;对比选出优秀的共享单车使用量预测模型;最后完成基于线性回归算法和岭回归算法的共享单车使用量预测功能。通过实验数据验证,基于线性回归算法和岭回归算法的共享单车使用量预测模型准确度达到0.71以上,因此两种模型的应用对共享单车合理调度有着重要的参考意义。
关键词:共享单车轨迹数据分析;共享单车使用量预测;线性回归算法;岭回归算法
研究背景
随着全球城市化进程的迅猛推进,城市人口数量不断增加,城市交通拥堵问题逐渐凸显。传统交通方式在高峰时段面临严重的通行压力,通勤效率大幅降低,给居民的日常生活和城市的经济发展带来了许多负面影响[1]。环境污染问题同样也越来越严峻,汽车尾气排放成为城市空气污染的主要来源之一,对居民的身体健康构成了威胁[2]。在此背景下,共享单车作为一种创新的绿色出行方式应运而生。
自共享单车首次投放市场以来,其发展势头极为强劲。以中国市场为例,在短短几年内,摩拜、ofo 等品牌迅速崛起,投放车辆数量呈爆发式增长[3]。截至 2024 年底,国内主要城市共享单车的投放总量已突破 5000 万辆大关,日订单量峰值可达数千万单。共享单车凭借其便捷性、灵活性以及环保特性,成功吸引了大量用户,有效填补了城市交通 “最后一公里” 的空白,成为城市综合交通体系中不可或缺的一部分[4]。
课题研究意义
从共享单车企业的角度来看,精准的车辆投放和调度策略能够显著提高车辆的使用效率。通过根据用户出行模式和需求预测结果,合理调整车辆在不同区域和时段的分布,可以减少车辆闲置现象,降低车辆的运维成本,提高企业的盈利能力。同时,更好的服务体验也有助于提升用户满意度和忠诚度,增强企业的市场竞争力[5]。
对于城市交通管理部门而言,共享单车轨迹大数据分析结果具有重要的决策参考价值。通过深入了解共享单车的出行规律和流量分布情况,交通管理部门可以优化城市道路规划,合理设置自行车道和停车设施,提高城市道路资源的利用率。此外,共享单车在缓解交通拥堵、减少碳排放方面具有积极作用。通过分析轨迹数据评估共享单车对城市交通和环境的影响,有助于交通管理部门制定更加科学合理的交通政策,推动城市绿色出行体系的发展,提升城市的整体交通运行效率和环境质量[6]。
研究内容
本文以收集的共享单车相关数据为研究对象,基于线性回归算法和岭回归算法进行共享单车使用量预测模型构建,具体研究如下。
(1)收集共享单车相关的数据如日期、季节、年份、月份、假期、工作日、天气、摄氏度、体感温度、湿度、风速、临时用户数、已注册用户数、单车使用量等信息,对共享单车数据集的缺失值进行统计及处理,并验证重复的共享单车数据情况,对重复的共享单车数据进行删除。
(2)绘制共享单车数据分析图,分别进行用户结构统计分析。
(3)划分训练集、测试集,基于线性回归算法的共享单车使用量预测模型训练以及评估,展示共享单车测试集预测和实际的对比情况;
(4)基于岭回归算法的共享单车使用量预测模型构建,完成模型训练、评估的分析、共享单车测试集的预测等。
(5)线性回归算法与岭回归算法的共享单车使用量预测模型比较,选出最佳的共享单车模型,并实现不同算法的共享单车使用量预测功能,同时根据共享单车范围明确其是否在正常范围内。
用户结构统计分析
通过df读取共享单车数据,并按照临时用户和已注册用户数量进行统计分析,得到如图所示统计结果图。

通过用户结构统计分析图可以分析得出, 可以看出某地区共享单车用户中已注册用户数和临时用户数的占比情况:已注册用户数占比 81.2%,在饼图中用橙色表示。这表明该地区大多数共享单车用户是已注册用户,说明很多用户选择长期使用共享单车,可能是因为注册用户能享受更多优惠、服务更便捷等原因。临时用户数:占比18.8%,在饼图中用蓝色表示。临时用户相对较少,可能是一些偶尔使用共享单车的人群,比如游客、只是短时间有出行需求的人等。
按照季节统计用户数量分析
通过df读取共享单车数据,以季节为分类,并按照临时用户和已注册用户数量进行统计分析,得到如图所示统计结果图。

通过按照季节统计用户数量分析图可以分析得出, 冬季临时用户数和已注册用户数相对较少, 临时用户数占比较小,已注册用户数略多于临时用户数,整体的用户数量在四个季节中是最少的。这可能是因为冬季天气寒冷,人们出行更倾向于选择保暖性更好的交通方式,如乘坐室内交通工具或自驾。夏季用户数量达到峰值,尤其是已注册用户数显著增加。临时用户数也有一定增长, 可能是因为夏季天气较为适宜骑行,且可能是旅游旺季,吸引了更多临时用户使用共享单车。春季:用户数量仅次于夏季,已注册用户数和临时用户数都比较可观。春季气候温和,适合户外活动,使得共享单车的使用需求上升。秋季:用户数量有所下降,但仍高于冬季。 秋季天气逐渐转凉,不过仍然比较适合骑行,所以用户数量保持在一定水平。
按照月份统计用户数量分析
通过df读取共享单车数据,并按照临时用户和已注册用户数量进行统计分析,得到如图所示统计结果图。

通过按照月份统计用户数量分析图可以分析得出,已注册用户数,增长阶段从 1 月到 7 月,已注册用户数呈现持续增长的趋势。在 1 - 3 月增长较为平缓,从 3 月开始增长速度加快,到 7 月左右达到峰值,说明这期间可能有一系列推广活动或者外部因素促使更多用户注册使用共享单车。稳定阶段7月到 9月期间,已注册用户数保持在一个相对稳定的较高水平,表明用户群体在这段时间内比较稳定,没有出现较大的波动。下降阶段:从 9 月开始,已注册用户数逐渐下降,到 12 月时降至相对较低的水平。可能是由于季节变化、天气转冷等原因,导致用户使用共享单车的频率降低,进而影响了注册用户的数量。临时用户数,增长阶段1 月到 5 月,临时用户数逐步上升,在 5 月左右达到一个小高峰。这可能是随着天气转暖,出行需求增加,一些非长期使用的用户选择临时使用共享单车。稳定波动阶段5 月到 8 月,临时用户数在一个相对稳定的区间内波动,保持在较高水平,说明这段时间内临时使用共享单车的需求比较稳定。下降阶段从 8 月开始,临时用户数持续下降,到 12 月时降至较低水平,与已注册用户数的下降趋势相似,可能同样受到季节因素的影响。
按照假期统计用户数量分析
通过读取共享单车数据,并按照临时用户和已注册用户数量进行统计分析,得到如图4-4所示统计结果图。

通过按照假期统计用户数量分析图可以分析得出,假期期间临时用户数和已注册用户数都非常少,几乎接近于 0。这可能是因为在假期期间,该地区的居民出行模式发生变化,比如外出旅游、选择其他交通方式等,导致使用共享单车的人数大幅减少。非假期期间,已注册用户数占据了绝大部分,数值较高,大约在 3.0 左右。临时用户数相对较少,数值大约在 0.5 左右。这表明在非假期时期,该地区共享单车的主要使用人群是已注册用户,临时用户只占一小部分。
按照工作日统计用户数量分析
通过df读取共享单车数据,并按照临时用户和已注册用户数量进行统计分析,得到如图所示统计结果图。

通过按照工作日统计用户数量分析图可以分析得出,工作日情况已注册用户数明显高于临时用户数,且两者相加后,整体的用户数量较高。这表明在工作日期间,共享单车的主要使用群体是已注册用户,可能是因为上班族将共享单车作为日常通勤的工具之一,且已注册用户更倾向于在工作日使用共享单车出行。非工作日情况,已注册用户数和临时用户数都有所减少,且减少幅度较大。相比之下,已注册用户数仍然多于临时用户数,但差距相对工作日有所缩小。这可能是因为在非工作日,人们的出行需求和出行方式发生了变化,比如更多人选择自驾、乘坐公共交通等方式出行,导致使用共享单车的人数下降。
基于线性回归的共享单车使用量预测模型训练
基于线性回归的共享单车使用量预测模型训练,读取621条共享单车训练集数据作为数据源,TrainZhiFangLin方法用于训练模型,ProZhiFangLin方法用于进行预测。
共享单车使用量预测模型训练(TrainZhiFangLin方法)
(1)初始化
在训练共享单车使用量预测模型之前,先初始化一个线性回归模型对象。这是通过调用LinearRegression()来实现的,它来自于sklearn.linear_model模块。
(2)加载训练数据
这里准备两份数据:一份是特征数据train_ZhiFang,另一份是对应的目标变量数据train_ZhiFangY(即共享单车的真实值)。这两份数据构成了训练集,用于训练线性回归模型。
(3)训练模型
使用训练数据来训练线性回归模型。通过调用linreg.fit(train_ZhiFang, train_ZhiFangY),模型会学习如何根据输入的特征数据来预测共享单车。这个过程涉及到优化算法来最小化预测值与真实值之间的误差。
(4)保存模型
训练完成后,使用joblib.dump()函数将训练好的模型linreg保存到磁盘上。文件名为self._zhiFile + "TrainZhiFangLin.model",其中self._zhiFile是类的一个属性,用于指定模型文件的保存路径。保存模型是为了以后能够加载并直接使用,而无需重新训练。
更多推荐


所有评论(0)