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

news2024/11/25 2:44:01

一、研究背景和意义

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

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

研究意义:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1834239.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IRIS论文阅读笔记

这是ICLR2023一篇world model的论文,提出了一个称为IRIS的world model方法模型仍然是分为两部分,一部分是模拟世界的world model,包括预测下一帧的观测,预测当前reward,预测是否terminate的三个输出;第二部…

echarts legend 背景色渐变

问题与本文无关&#xff1a;如果检测软件显示loadsh.js 的版本是4.17.10 装element-ui 2.15.8版本以下&#xff0c;2.15.6经过测试可以 代码&#xff1a; <template><div class"levelMain"><div class"survey-head"><div class"…

信号与系统实验MATLAB-实验1-信号的MATLAB表示及信号运算

实验1-信号的MATLAB表示及信号运算 一、实验目的 1、掌握MATLAB的使用&#xff1b; 2、掌握MATLAB生成信号波形&#xff1b; 3、掌握MATLAB分析常用连续信号&#xff1b; 4、掌握信号运算的MATLAB实现。 二、实验内容 编写程序实现下列常用函数&#xff0c;并显示波形。…

OpenMMlab AI实战营第七期培训

OpenMMlab AI实战营第七期培训 OpenMMlab实战营第七次课2023.2.10学习参考一、全流程的语义分割实战1.回顾**语义分割**、**实例分割**、**全景分割**2.代码模板的全流程3.数据集推荐&#xff1a;4.代码全流程 OpenMMlab实战营 第七次课2023.2.10 此次实战营的积分规则介绍&a…

LabView_波形控件

波形图表 将一定数量的数据点存储在缓冲区&#xff0c;并通过这种方式存储并显示这些数据点。当缓冲区被填满后&#xff0c;波形图表将会用新的数据点覆盖缓冲区中存在时间最久的数据点。 当数据点可用时&#xff0c;波形图表将显示已有的数据点外加最新接收到的数据点 。 您可…

Vatee万腾平台:创新科技,助力企业腾飞

在全球化竞争日益激烈的今天&#xff0c;企业如何借助科技力量实现转型升级&#xff0c;已成为摆在众多企业家面前的重大课题。Vatee万腾平台凭借其卓越的创新科技和专业的服务能力&#xff0c;成为众多企业实现腾飞的得力助手。 一、创新科技&#xff0c;引领企业前行 Vatee万…

解读自然语言处理:技术、应用与未来展望

引言 自然语言处理&#xff08;Natural Language Processing&#xff0c;简称NLP&#xff09;是计算机科学、人工智能和语言学的一个跨学科领域&#xff0c;致力于实现人与计算机之间通过自然语言进行有效沟通的能力。NLP 的核心任务是理解、解释和生成人类语言&#xff0c;使计…

【GlobalMapper精品教程】086:批量修改符号的样式

跟ArcGIS一样,Globalmapper也可以批量修改符号的样式,如样式、填充颜色、轮廓等等。 文章目录 一、加载实验数据二、土地利用符号化三、批量修改符号样式四、注意事项一、加载实验数据 订阅专栏后,从私信查收专栏配套的完整实验数据包,打开data086.rar中的土地利用数据,如…

[C#]使用深度学习算法opencvsharp部署RecRecNet广角图像畸变矫正校正摄像广角镜头畸变图像

【论文地址】 https://arxiv.org/abs/2301.01661 【训练源码】 https://github.com/KangLiao929/RecRecNet 【参考源码】 https://github.com/hpc203/recrecnet-opencv-dnn 【算法介绍】 广角镜头在VR技术中显示出诱人的应用&#xff0c;但它会在捕获的图像中引入严重的径…

AI早班车

全球AI新闻速递 1.国内团队制作AI短片《凤鸣山海》亮相北京电影节 国内团队制作AI短片《凤鸣山海》亮相北京电影节“光影未来”电影科技单元。独特的中国玄幻题材&#xff0c;朱雀、玄武、白虎、青龙&#xff0c;四大神兽栩栩如生 2.字节跳动拒绝出售TikTok&#xff0c;如果败…

Pycharm怎么默认终端连接远程服务器

因为经常需要从宿舍到学校内通勤&#xff0c;期间所有连接都会中断&#xff0c;所以每次开SSH特别麻烦&#xff0c;每次终端自动切换到本地&#xff1a; 每次都得点一下Start SSH Session 想要默认终端连接远程服务器&#xff0c;需要点File->Setting->Tools->SSH T…

【Linux】MySQL下载与安装

1. 下载压缩包 官网下载 2. 解压 上传并解压好放在指定位置 创建soft文件夹 mkdir /soft上传文件&#xff0c;在该目录下再创建一个mysql文件夹&#xff0c;将安装包解压到新文件夹中 mkdir /soft/mysql-8.3.0 tar -xvf mysql-8.3.0-1.el9.x86_64.rpm-bundle.tar -C mysq…

【系统架构设计师】二、操作系统知识(存储管理|设备管理|文件管理)

目录 一、存储管理 1.1 分区存储管理 1.1.1 概念 1.1.2 系统分配内存的算法(可变分区) 1.1.3 逻辑页 1.1.4 页面置换算法 1.1.5 快表 1.2 分段存储管理 1.3 段页式存储 二、设备管理 2.1 概述 2.2 I/O软件 2.3 设备管理技术 三、文件管理 3.1 概述 3.2 文件的类…

超大场景的三维模型(3D)轻量化的主要技术方法

超大场景的三维模型&#xff08;3D&#xff09;轻量化的主要技术方法 超大场景的三维模型在虚拟现实、游戏开发和可视化应用等领域具有重要的价值和应用前景。然而&#xff0c;由于其庞大的数据量和复杂的几何结构&#xff0c;给数据存储、传输和渲染带来了挑战。为了提高超大场…

湖北科技学院2024年成人高等继续教育招生简章

湖北科技学院&#xff0c;这所坐落在荆楚大地的高等学府&#xff0c;一直以来都是培养各类专业人才的重要基地。随着社会的快速发展&#xff0c;终身学习的理念深入人心&#xff0c;成人高等继续教育作为满足广大成年人提升学历、增强职业技能的重要途径&#xff0c;受到了越来…

生成式人工智能如何改变客户服务

生成式人工智能不仅重新定义了品牌与客户的互动方式&#xff0c;还重新定义了品牌如何优化内部资源&#xff0c;以提供更加个性化和高效的服务。 了解在就业和效率方面的挑战和机遇&#xff0c;使用生成式人工智能工具进行客户服务和支持任务。 生成式人工智能不仅重新定义了品…

【Linux进程通信】Linux进程间的无声对话:匿名管道与命名管道技术

W...Y的主页 &#x1f60a; 代码仓库分享 &#x1f495; 前言&#xff1a;我们已经知道了进程和文件的基本理论&#xff0c;知道了进程和文件的重要性。进程具有独立性&#xff0c;所以两个进程不能直接通信&#xff0c;那么进程间应该怎样通信呢&#xff1f;我们今天来解开其…

【Linux】版本

文章目录 linux版本1、linxu技术版本&#xff08;内核版本&#xff09;2、linux商业化版本&#xff08;发行版本&#xff09; 区别 linux版本 1、linxu技术版本&#xff08;内核版本&#xff09; 内核&#xff1a;提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程…

第三十二篇-Ollama+Lobe-Chat基本集成配置

Lobe-chat https://github.com/lobehub/lobe-chat 现代化设计的开源 ChatGPT/LLMs 聊天应用与开发框架 支持语音合成、多模态、可扩展的&#xff08;function call&#xff09;插件系统 一键免费拥有你自己的 ChatGPT/Gemini/Claude/Ollama 应用启动ollama ollama run qwen:x…

WPF 深入理解四、样式

样式 WPF中的各类控件元素,都可以自由的设置其样式。 诸如: 字体(FontFamily) 字体大小(FontSize) 背景颜色(Background) 字体颜色(Foreground) 边距(Margin) 水平位置(HorizontalAlignment) 垂直位置(VerticalAlignment)等等。 而样式则是组织和重用以上的重要工具。不是使…