数据分享|Python、Spark SQL、MapReduce决策树、回归对车祸发生率影响因素可视化分析

简介: 数据分享|Python、Spark SQL、MapReduce决策树、回归对车祸发生率影响因素可视化分析

相关视频

image.png

image.png

项目挑战

在后续分析中特征选择是重点之一,要根据事实情况和数据易处理的角度来筛选变量

解决方案

任务/目标

根据已有的车祸数据信息,计算严重车祸发生率最高和最低的地区;并对车祸发生严重程度进行因素分析,判断哪些外界环境变量会影响车祸严重程度,分别有怎样的影响。

数据源准备

数据记录了约350万条车祸信息查看文末了解数据免费获取方式,我们从中截取2017-2019年三个年份的完整记录来进行分析。其中有用的列信息包括:日期、地区、严重程度、道路方向、温度、湿度、压强、能见度、风速等13列。

因为数据集过大,因此采用Spark(Spark SQL)和MapReduce等进行数据清洗和筛选。计算各地区总共的车祸数量,以及各月份的车祸数量,用于后续的可视化。

bf1d3bde36a3d506ee68f3ae8b0215eb.png

如上图所示,条形图显示的是车祸数量减去全国平均值,而折线图描述的是高严重事故发生率(等级1、2为低严重,等级3、4为高严重)。


点击标题查阅往期内容


数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、SVM分类葡萄酒交叉验证ROC

d761249d923fd348b0126cb42a85db21.png

因素分析

因为数据量足够多,因此直接删除了有缺失值的记录,得到了770,323行数据。为了分析影响车祸严重程度的环境因素,首先需要将每个因素进行处理和筛选:

能见度:当能见度为20-30公里时,能见度为极佳。然而在数据集中,有一些记录具有非常大的能见度,我认为这些值和10英里的值是一样的,因此把这些值改为10英里,以减少异常值。

天气状况:通过counplot计算不同天气状况下的车祸数量,得到了前10个最常出现的天气状况。为了研究环境因素对车祸严重程度的影响,我们只关注天气条件不好时的数据。因此,删除了天气条件良好的行,并删除了重复的行,最终得到360,824条记录。

f5caa76a6e3536147a300699e97c712e.png

风寒:通过绘制了pairplot来查看连续变量之间的关联性,其中发现了一些相互之间具有高度相关性的变量(温度和风寒)。因此删除了高相关变量(Wind_chill),以便使之后的回归分析更准确。

b5ff251935cf71cffabec074bc5eab6f.png

回归分析

在进行了特征选择和处理后,我们将剩下的变量进行回归分析。以车祸严重程度作为因变量(类别变量),以留下的环境变量为自变量,利用广义线性模型做回归分析,得到各变量的p值(如下图所示),结果表明,所有的p值均小于0.05,但其中温度和湿度的系数几乎等于0,说明这两个变量对严重程度的影响不大。民用曙暮光与风速均为正系数,因此可以推断夜间更容易发生严重事故,风速越高发生严重事故的可能性越大。气压和能见度系数均为负,因此气压和能见度越低,事故越严重。

77c45be16e1e7a64fa6e96710c47c2d7.png

分类树

我尝试通过分类树利用上述的特征来对车祸严重程度进行分类和预测,并得到对分类模型最有帮助的特征。

尝试了3、4和5交叉验证来确定最佳标准和树的最大深度。从下面的结果可以看出,对于该训练集,最佳的准则是gini准则,树的最大深度的最佳值是6。然后用这个模型对测试集进行预测。实际上,预测的结果并不是很好。因为样本数量太不均匀,导致分类结果与预测结果之间存在较大偏差。大部分数据被预测为2级。

645f5e8d379176b73a87c3e3406cc2be.png

由此可知,仅凭这些变量不足以衡量和预测车祸的严重程度。当然情况也是如此,因为我们在前提下只假设了外部环境因素的存在,而影响车祸的环境因素不仅包括这些因素。然而,我们仍然可以使用现有的数据集和决策树模型,以确定哪些变量是重要的分类。

53776c63f38a3b8ad3cbe84bec932435.png

项目结果

对于该车祸数据集,我们研究了交通事故数量和严重事故发生率,并分析了影响车祸严重程度的外部环境因素。结果表明,气压、能见度、风速和民用曙暮光对事故严重程度有一定的影响。压力、风速和温度对我们的数据进行分类更有帮助。

然而不可否认的是,这个分类和预测的结果并不是很好。由于数据集的限制,有许多潜在变量没有考虑进去,这些局限性导致回归和分类的结果存在一定的误差,但我们仍然可以得出一些关于环境因素可能影响人们发生车祸的结论。

相关文章
|
9月前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
7673 1
|
9月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
738 0
|
9月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
9月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
人工智能 分布式计算 大数据
大数据≠大样本:基于Spark的特征降维实战(提升10倍训练效率)
本文探讨了大数据场景下降维的核心问题与解决方案,重点分析了“维度灾难”对模型性能的影响及特征冗余的陷阱。通过数学证明与实际案例,揭示高维空间中样本稀疏性问题,并提出基于Spark的分布式降维技术选型与优化策略。文章详细展示了PCA在亿级用户画像中的应用,包括数据准备、核心实现与效果评估,同时深入探讨了协方差矩阵计算与特征值分解的并行优化方法。此外,还介绍了动态维度调整、非线性特征处理及降维与其他AI技术的协同效应,为生产环境提供了最佳实践指南。最终总结出降维的本质与工程实践原则,展望未来发展方向。
693 0
|
分布式计算 大数据 Apache
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
1251 2
ClickHouse与大数据生态集成:Spark & Flink 实战
|
存储 分布式计算 Hadoop
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
787 79
|
存储 分布式计算 算法
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
466 0
|
消息中间件 分布式计算 NoSQL
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
400 0

推荐镜像

更多