当前位置: 首页 > news >正文

Python数据分析-对驾驶安全数据进行了预测

一、研究背景和意义

随着汽车保有量的不断增加,交通事故已成为全球范围内的重大公共安全问题。每年因交通事故造成的人员伤亡和财产损失给社会带来了巨大的负担。为了提高驾驶安全,减少交通事故的发生,许多研究致力于探索影响驾驶安全的因素,并开发相应的预测模型。

机器学习作为一种强大的数据分析工具,在驾驶安全领域得到了广泛的应用。通过对大量驾驶安全数据的学习和分析,机器学习算法可以自动发现数据中的模式和规律,并建立预测模型,以预测驾驶员的行为和事故风险。

研究意义:

  1. 提高驾驶安全:通过预测驾驶员的行为和事故风险,提前采取相应的措施,如发出警告、调整驾驶策略等,可以有效地减少交通事故的发生,提高驾驶安全。
  2. 优化交通管理:驾驶安全预测模型可以为交通管理部门提供决策支持,帮助他们优化交通流量、改善道路设施、加强交通安全宣传等,从而提高整个交通系统的安全性和效率。
  3. 推动智能驾驶技术的发展:驾驶安全预测是智能驾驶技术的重要组成部分。通过对驾驶安全数据的分析和预测,可以为智能驾驶系统提供实时的驾驶建议和决策支持,推动智能驾驶技术的发展和应用。
  4. 降低保险成本:保险公司可以利用驾驶安全预测模型来评估驾驶员的风险水平,从而制定个性化的保险费率,降低保险成本。
  5. 促进社会和谐发展:交通事故不仅给个人和家庭带来了巨大的痛苦和损失,也对社会的和谐发展造成了负面影响。通过提高驾驶安全,减少交通事故的发生,可以促进社会的和谐发展。

综上所述,使用机器学习方法对驾驶安全数据进行预测具有重要的研究背景和意义。它不仅可以提高驾驶安全,减少交通事故的发生,还可以为交通管理、智能驾驶技术、保险等领域提供有益的支持,促进社会的和谐发展。

二、实证分析

首先读取数据集

数据和完整代码

#####导入基础的数据处理包
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# Load the dataset
df = pd.read_csv("train.csv")

查看数据集前五行 

###查看数据
df.head()

可以发现每个样本有59个特征

接下来查看数据类型 

df.shape

 

发现数据量为595212*59,数据量挺大,这可能对最终的模型计算产生一些阻碍。接下来查看数据类型

接下来进行数据预处理,对其他行列进行处理,首先若是一行全为空值就删除

###对列进列进行处理。如果有一列的值全部一样,也就是取值唯一的特征变量就可以删除了,因为每个样本没啥区别,对模型就没啥用
#取值唯一的变量删除
for col in df.columns:if len(df[col].value_counts())==1:print(col)df.drop(col,axis=1,inplace=True)
#缺失到一定比例就删除
miss_ratio=0.15
for col in df.columns:if  df[col].isnull().sum()>df.shape[0]*miss_ratio:print(col)df.drop(col,axis=1,inplace=True)

 统计性描述

观察缺失值可视化

import missingno as msno
msno.matrix(df)

grouped = df.groupby('ps_calc_20_bin').mean()
grouped 

 

接下来画出特征的直方图

df.hist(bins=50, figsize=(20,15))
plt.show()

 

查看特征变量的箱线图分布

接下来采用了斯皮尔曼相关系数计算,画出热力图。在训练集上带上了y

corr = plt.subplots(figsize = (20,16),dpi=128)
corr= sns.heatmap(df.corr(method='spearman'),annot=True,square=True)

 

响应变量分布

由于数据集样本不平衡,要处理一下

no_target = df_copy.drop(index = target.index)
no_target = no_target.sample(n = 21694)
balanced = pd.concat([no_target, target])
balanced['target'].value_counts()balanced

平衡了

可视化响应变量分布

开始机器学习  准备模型

# Split the dataset into training and test sets
X = df1.drop(['id'], axis=1)  ####我们这里target已经没有了
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
from sklearn.neighbors import KNeighborsClassifier
model = KNeighborsClassifier(n_neighbors=10)
model.fit(X_train_s, y_train)
model.score(X_test_s, y_test)

from sklearn.ensemble import RandomForestClassifier
model= RandomForestClassifier(n_estimators=1000,  max_features='sqrt',random_state=10)
model.fit(X_train_s, y_train)
model.score(X_test_s, y_test)
from sklearn.ensemble import AdaBoostClassifier
model0 = AdaBoostClassifier(n_estimators=100,random_state=77)
model0.fit(X_train_s, y_train)
model0.score(X_test_s, y_test)

到此,完成了模型的预测和比较。。。

三、小结

在这个案例中,我运用了机器学习的方法,包括KNN,自适应提升和随机森林等等,对驾驶安全进行了预测。然而,由于数据量很 大导致样本不平衡,最终结果很一般,甚至出现了过拟合的情况。在解决这个问题的过程中,我采用了以下的方法: 数据清洗和特征选择 在机器学习的过程中,数据质量和特征选择都是非常重要的。在本案例中,我通过数据清洗和特征选择的方式,剔除了一些噪声 和冗余的数据,以及一些无关或者不必要的特征。这可以提高数据的质量,提高模型的准确性。 数据预处理 在处理数据时,我注意到数据量很大,且样本不平衡,这对于机器学习算法的效果产生了很大的影响。因此,我采用了一些数据 预处理的方法,包括数据平衡和数据规范化。数据平衡可以通过欠采样和过采样的方式来实现。而数据规范化则可以通过归一化 和标准化等方式来实现,以确保不同特征的数值范围一致。

模型选择和调优:在本案例中,我尝试了多种机器学习算法,包括KNN,自适应提升和随机森林等等。然而,由于数据量很大且样本不平衡,模型 表现并不理想,存在过拟合的情况。因此,后续可以采用模型调优的方式来提高模型的准确性和泛化能力。 结果分析和优化 在完成机器学习任务后,我对结果进行了分析和优化。例如,我发现在预测少数类别时,模型表现并不理想,因此需要进一步加强 对少数类别的学习。 综上所述,在本案例中,我通过数据清洗和特征选择、数据预处理、模型选择和调优以及结果分析和优化等方法,一定程度上完 成了机器学习的过程,后续的对于样本处理以及过拟合的问题还需进一步研究。

相关文章:

Python数据分析-对驾驶安全数据进行了预测

一、研究背景和意义 随着汽车保有量的不断增加,交通事故已成为全球范围内的重大公共安全问题。每年因交通事故造成的人员伤亡和财产损失给社会带来了巨大的负担。为了提高驾驶安全,减少交通事故的发生,许多研究致力于探索影响驾驶安全的因素…...

全志 Android 11:实现响应全局按键

一、篇头 最近实现热键想功能,简单总结了下全志平台Android 11 的响应全局热键的方法。 二、需求 实现全局热键,响应F-、AF、F三个按键,AF只用于启动调焦界面,F-和F除了可以启动调焦界面外,还用于调整镜头的焦距&…...

DVWA 靶场 Open HTTP Redirect 通关解析

前言 DVWA代表Damn Vulnerable Web Application,是一个用于学习和练习Web应用程序漏洞的开源漏洞应用程序。它被设计成一个易于安装和配置的漏洞应用程序,旨在帮助安全专业人员和爱好者了解和熟悉不同类型的Web应用程序漏洞。 DVWA提供了一系列的漏洞场…...

Blender:渲染输出

一、渲染设置 渲染设置界面: 渲染器选择切换 Cycles渲染器 【文档】 Cycles渲染目标: Cycles是Blender用于产品级渲染,基于物理的路径跟踪器。主要关注于影视质量,更高质量的外观它旨在提供易于使用以及准确的物理渲染结果具有艺术…...

NTFS和exFAT哪个性能好 U盘格式化NTFS好还是exFAT好 mac不能读取移动硬盘怎么解决

文件系统的选择对存储设备的性能和兼容性有着重要影响。而NTFS和EXFAT作为两种常见的文件系统,它们各有特点,适用于不同的使用场景。我们将深入探讨NTFS和EXFAT的区别,帮助大家选择最适合自己需求的文件系统。 NTFS:稳定与性能的平…...

kafka的基本模型

kafka官网 线程和线程之间的数据交互 在jvm里不同的线程有自己的栈内存,但彼此之间交互可以在共享的内存中进行,即堆内存,堆内存会将这些消息放到队列中,具体实现jvm见,栈内存各自维护,堆内存大家共享 进…...

npm语义化版本和版本运算符

版本号组成 一个完整的版本号,由三部分组成:主版本号(major)、次版本号(minor)、修订版本号(patch),简称X.Y.Z,具体含义: 主版本号(major):项目&#xff08…...

孩子到了叛逆期,家长应该怎么教育孩子?

到了一定的年龄后,有些孩子会变得叛逆起来,那么对于家长来说,如何教育叛逆的孩子?孩子叛逆期教育方法有哪些呢?   叛逆期教育孩子用什么方法   一。要摒除父母对孩子居高临下的心态,放下身叚&#xff0…...

芋道源码 yudao-cloud 、Boot 文档,开发指南 看全部,破解[芋道快速开发平台 Boot + Cloud]

1、文档全部保存本地部署查看,真香 文档已抓取最新版本,2024.06.21。【唯一遗憾,表结构到2024.04月,已被限制放到知识星球】会员中心,支付中心,CRM,ERP,商城,公众号运行…...

工具函数-算法

1. 实现四舍五入,保留两位小数 const v 0.0635455; // 方式1,保留2位小数,返回的是number格式 const formatted Math.round(v * 100) / 100; // 方式2,保留2位小数,返回的是字符串格式 const formatted v.toFixed(…...

C# yolov8 OpenVINO 同步、异步接口视频推理

C# yolov8 OpenVINO 同步、异步接口视频推理 目录 效果 项目 代码 下载 效果 同步推理效果 异步推理效果 项目 代码 using OpenCvSharp; using System; using System.Collections.Generic; using System.Diagnostics; using System.Threading; using System.Windows.Form…...

【STM32入门学习】定时器与PWM的LED控制

目录 一、定时器与PWM介绍 1.1定时器 1.1.1定时器分类简介 1.1.2STM32定时器分类比较表 1.1.3定时器启动操作: 1.2 PWM 1.2.1 简介: 1.2.2PWM工作原理 1.2.3使用步骤: 二、定时器计数控制LED灯亮灭 2.1HAL库 2.1.1使用HAL库创建…...

PyTorch实战:模型训练中的特征图可视化技巧

1.特征图可视化,这种方法是最简单,输入一张照片,然后把网络中间某层的输出的特征图按通道作为图片进行可视化展示即可。 2.特征图可视化代码如下: def featuremap_visual(feature, out_dirNone, # 特征图保存路径文件save_feat…...

有人@你!神工坊知识问答第二期中奖名单新鲜出炉

六月作为伟大的物理学家—麦克斯韦的诞辰月 神工坊特别推出 “ 辨 ‘麦克斯韦妖’,赢百元好礼” 夏日知识问答主题活动 活动一经推出 反响热烈 第二期中奖名单公布! 中奖的伙伴们速来兑奖! 听说还有同学没有参与? 活动最后…...

数据结构篇:旋转操作在AVL树中的实现过程

本节课在线学习视频(网盘地址,保存后即可免费观看): https://pan.quark.cn/s/06d5ed47e33b AVL树是平衡二叉搜索树的一种,它通过旋转操作来保持树的平衡。AVL树的特点是,任何节点的两个子树的高度最大差别…...

为什么Java默认使用UTF-16,Golang默认使用UTF-8呢?

Java 和 Go 语言在默认字符编码上做出了不同的选择,这是由它们的设计目标和使用场景决定的。下面是对 Java 默认使用 UTF-16 和 Go 默认使用 UTF-8 的原因进行的详细解释。 Java 默认使用 UTF-16 的原因 1. 历史背景和兼容性 Unicode 的发展: Java 诞生于 1995 年…...

JavaScript常见面试题(三)

文章目录 1.对原型、原型链的理解2.原型修改、重写3.原型链指向4.对闭包的理解5. 对作用域、作用域链的理解6.对执行上下文的理解7.对this对象的理解8. call() 和 apply() 的区别?9.异步编程的实现方式?10.setTimeout、Promise、Async/Await 的区别11.对…...

【Effective Modern C++】第1章 型别推导

【Effective Modern C】第1章 型别推导 文章目录 【Effective Modern C】第1章 型别推导条款1:理解模板型别推导基础概念模板型别推导的三种情况情景一 ParamType 是一个指针或者引用,但非通用引用情景二 ParamType是一个通过引用情景三 ParamType既不是…...

服装连锁实体店bC一体化运营方案

一、引言 随着互联网的快速发展和消费者购物习惯的变化,传统服装连锁实体店在面对新的市场环境下亟需转型升级。BC(Business to Consumer)一体化运营方案的实施将成为提升服装连锁实体店竞争力和顾客体验的关键举掖。商淘云详细介绍服装连锁…...

IDEA中SpringMVC的运行环境问题

文章目录 一、IEAD 清理缓存二、用阿里云和spring创建 SpringMVC 项目中 pom.xml 文件的区别 一、IEAD 清理缓存 springMVC 运行时存在一些之前运行过的缓存导致项目不能运行,可以试试清理缓存 二、用阿里云和spring创建 SpringMVC 项目中 pom.xml 文件的区别 以下…...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

uniapp中使用aixos 报错

问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...

AspectJ 在 Android 中的完整使用指南

一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

区块链技术概述

区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...

鸿蒙(HarmonyOS5)实现跳一跳小游戏

下面我将介绍如何使用鸿蒙的ArkUI框架,实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...

Python训练营-Day26-函数专题1:函数定义与参数

题目1:计算圆的面积 任务: 编写一个名为 calculate_circle_area 的函数,该函数接收圆的半径 radius 作为参数,并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求:函数接收一个位置参数 radi…...

深入浅出WebGL:在浏览器中解锁3D世界的魔法钥匙

WebGL:在浏览器中解锁3D世界的魔法钥匙 引言:网页的边界正在消失 在数字化浪潮的推动下,网页早已不再是静态信息的展示窗口。如今,我们可以在浏览器中体验逼真的3D游戏、交互式数据可视化、虚拟实验室,甚至沉浸式的V…...