当前位置: 首页 > 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 文件的区别 以下…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用&#xff1a; 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests&#xff1a;发送 …...

Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么&#xff1f;它的作用是什么&#xff1f; Spring框架的核心容器是IoC&#xff08;控制反转&#xff09;容器。它的主要作用是管理对…...

拟合问题处理

在机器学习中&#xff0c;核心任务通常围绕模型训练和性能提升展开&#xff0c;但你提到的 “优化训练数据解决过拟合” 和 “提升泛化性能解决欠拟合” 需要结合更准确的概念进行梳理。以下是对机器学习核心任务的系统复习和修正&#xff1a; 一、机器学习的核心任务框架 机…...

构建Docker镜像的Dockerfile文件详解

文章目录 前言Dockerfile 案例docker build1. 基本构建2. 指定 Dockerfile 路径3. 设置构建时变量4. 不使用缓存5. 删除中间容器6. 拉取最新基础镜像7. 静默输出完整示例 docker runDockerFile 入门syntax指定构造器FROM基础镜像RUN命令注释COPY复制ENV设置环境变量EXPOSE暴露端…...