数据分享|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

项目结果

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

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

相关文章
|
10月前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
8355 1
|
10月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
780 0
|
10月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
10月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
504 0
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
595 2
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
483 2
|
数据采集 数据挖掘 API
Python数据分析加速器:深度挖掘Pandas与NumPy的高级功能
在Python数据分析的世界里,Pandas和NumPy无疑是两颗璀璨的明星,它们为数据科学家和工程师提供了强大而灵活的工具集,用于处理、分析和探索数据。今天,我们将一起深入探索这两个库的高级功能,看看它们如何成为数据分析的加速器。
297 1
|
数据采集 数据可视化 数据挖掘
Python数据分析:Pandas库实战指南
Python数据分析:Pandas库实战指南
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集

推荐镜像

更多