【Python案例实战】水质安全分析及建模预测

一、引言

1.水资源的重要性

水是生命之源,是人类生存和发展的基础。它是生态系统中不可或缺的组成部分,对于维系地球上的生命、农业、工业、城市发展等方面都具有至关重要的作用。

2.水质安全与人类健康的关系

水质安全直接关系到人类的健康和生存。水中的污染物和有害物质可能对人体造成严重的健康危害,如肠道疾病、皮肤疾病、癌症等。因此,确保水质安全是保障人类健康的重要前提。

3.建模预测在水质安全分析中的必要性

为了应对水质安全面临的挑战,需要采取科学的方法进行水质监测和分析。而建模预测作为一种重要的分析工具,可以帮助我们更好地理解水质变化的规律和趋势,预测未来的水质状况,为水质管理和保护提供科学依据。通过建模预测,可以提前预警可能出现的污染事件,及时采取应对措施,保障水质安全。因此,建模预测在水质安全分析中具有不可替代的作用。

二、水质安全分析

1.水质标准与指标

a. 世界卫生组织(WHO)水质标准
世界卫生组织(WHO)制定了一套全球通用的水质标准,以确保人类和生态系统健康。这些标准包括对各种污染物的最大允许浓度,如重金属、有害有机物、细菌、病毒等。
b. 各国水质标准与法规
各国根据自身实际情况和需求,制定了自己的水质标准与法规。这些标准通常会参考或采纳WHO的标准,但也可能根据本国的特定环境和条件进行调整。
c. 特定污染物指标
除了上述通用指标外,针对特定环境和用途,还可能有一些特定的污染物指标。例如,针对农业灌溉的水质,可能更加关注农药残留和盐分等指标;而针对工业用水,可能更加关注pH值、硬度、悬浮物等指标。

2. 水质检测方法

a. 物理检测法
物理检测法主要通过测量水的物理性质来评估水质。例如,浊度、色度、温度、pH值等都可以通过物理方法测量。
b. 化学检测法
化学检测法涉及使用化学试剂和仪器来测量水中的化学物质。这种方法可以检测出更多的污染物,尤其是那些不能通过物理方法检测的物质。
c. 生物检测法
生物检测法利用生物体的反应来评估水质。例如,通过观察生物的生长、繁殖或死亡情况,可以判断水质的好坏。这种方法通常用于评估水体的综合质量。

3. 水质污染源分析

a. 点源污染
点源污染指的是具有明确排放源的污染,如工业废水、城市污水等。这类污染源通常具有较大的排放量,且污染物种类较为单一。
b. 面源污染
面源污染指的是没有固定排放源的污染,如农业排水、雨水冲刷等。这类污染源排放的污染物种类多、数量大,且难以控制。
c. 移动源污染
移动源污染主要指交通工具排放的废气和废水等。这类污染源具有流动性大、排放不规律等特点,对水质安全造成一定威胁。

4.水质安全风险评估

a. 暴露评估
暴露评估是指评估人们通过饮水、食物、呼吸等途径接触到的污染物量。通过了解暴露量,可以判断人体受到的健康风险。
b. 毒性评估
毒性评估是指对污染物对人体和生态系统的危害程度进行评估。通过对污染物进行毒性实验,可以了解其对人体和生态系统的潜在危害。
c. 风险特征描述
风险特征描述是对暴露评估和毒性评估的综合分析,以判断某一污染物对人体和生态系统的风险水平。根据风险水平的高低,可以制定相应的管理措施和预警方案。

三、项目准备

1.电脑配置

本机系统为Window10s,运行软件使用JupyterNote

库名版本号
pandas1.5.3
matplotlib3.7.2
seaborn2.1.0

2.数据集描述

本数据集是一个综合性的水质分析数据集,由7999条模拟数据记录组成。

数据集包括多种化学物质的浓度测量值,如铝、氨、砷、钡、镉等,以及每种化学物质的安全阈值。
这些化学物质在实际水源中的浓度通常由多种因素决定,包括环境污染、工业排放、自然矿物质含量等。

数据集中包括一列“是否安全”分类变量,用于指示水样是否满足人类消费的安全标准。这个字段是基于各化学物质浓度与其对应安全阈值的比较得出的。

本数据为模拟数据集,但在设计上参考了实际情况,通过这个数据集,你可以探索数据预处理、特征工程、模型构建和评估等多个方面。这些探索分析结论也可以为研究水质安全与公共卫生之间关系提供有价值的参考信息。

3.问题描述

预测水是否安全(二元分类问题)
使用机器学习算法(如逻辑回归、支持向量机、随机森林)来预测水是否安全。
对数据集进行训练-测试分割,使用交叉验证来评估模型性能。
分析哪些参数对水质安全性的预测最为重要。

探索化学物质含量与水质安全性之间的关联(相关性分析)
进行统计分析,如皮尔逊或斯皮尔曼相关性测试,来评估不同化学物质含量与水质是否安全之间的关联性。
使用散点图和热图来可视化这些关系。

安全与不安全水样的特性(描述性统计分析)
对安全和不安全的水样分别进行描述性统计分析,包括平均值、中位数、标准差等。
使用箱线图或小提琴图来比较不同化学物质在安全与不安全水样中的分布情况。

识别潜在的危险化学物质(异常值分析)
使用箱线图或其他可视化工具来识别各化学物质中的异常值。
分析这些异常值是否与水质不安全有关。

四、数据准备

1.导入库

import warnings
warnings.filterwarnings("ignore")import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib import font_manager
from sklearn.model_selection import train_test_split, cross_val_score
from sklearn.preprocessing import StandardScaler
from lazypredict.Supervised import LazyClassifier
from imblearn.over_sampling import SMOTE## 加载字体
font_path = "dellarespira-regular.ttf"
font_manager.fontManager.addfont(font_path)
prop = font_manager.FontProperties(fname=font_path)## 定义全局使用
plt.rcParams['font.family'] = 'sans-serif'
plt.rcParams['font.sans-serif'] = prop.get_name()plt.rcParams['axes.unicode_minus'] = False

这段代码主要进行了一些初始化和配置工作,为后续的数据处理和可视化打下了基础。首先,导入了多个库,这些库提供了数据处理、可视化和机器学习的功能。接着,通过warnings.filterwarnings(“ignore”)来忽略可能出现的警告信息。然后,加载了一个自定义的字体文件,并将其设置为matplotlib的字体,以确保绘图中的文字能以指定的字体显示。最后,设置了matplotlib的全局字体参数,确保所有图形的字体都使用这个自定义字体。

2.数据读取及预处理

#读取数据
df = pd.read_csv("data/waterQuality.csv")
df.drop_duplicates(inplace=True)
# 查看数据信息
items = [[col, df[col].dtype, df[col].isnull().sum(),] for col in df
]
display(pd.DataFrame(data=items, columns=['Attributes','Data Type','Total Missing',
]))

在这里插入图片描述
相当于info()函数,不过这样的好处是更加美观,可操作性更强(部分结果)

def conver_type(value):try:res =

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

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

相关文章

苹果Mac电脑PDF优化压缩推荐 Recompress中文 for Mac

Recompress采用了先进的压缩技术,能够智能地分析PDF文件并确定哪些内容可以进一步压缩以节省存储空间。中文界面:Recompress Mac版提供了符合国人浏览习惯的中文界面,使得用户在使用时更加方便。批量压缩:Recompress支持批量压缩P…

海外直邮革命:跨境电商的全球化销售策略

在数字化时代,跨境电商正经历着一场革命,而海外直邮成为这场变革的引领者。全球范围内,越来越多的企业通过直邮方式销售商品,打破了地域限制,实现了商品的全球化流通。本文将深入探讨海外直邮的崛起,以及跨…

文件管理方法和技巧,清除文件名中的大写字母

如何将多个文件名称中的大写字母都清除掉,有没有批量操作的方法?这个还真的有,今天小编就给各位朋友介绍一款很好用的软件——文件批量改名高手,助大伙一键清除多个文件名称中的所有大写字母。 所需工具: 一个【文件…

RocketMQ5-01云原生和AI演变下的架构重构

2022年9月22日,迎来 RocketMQ5 的发版,距离 2017 发布的 4.X 时代,RocketMQ 迎来 5.X 时代。 RocketMQ 4.X 时代已经使众多开发者和项目受益,但是随着关注度、使用量逐步上升以及云原生时代的到来,也对其自身架构带来…

无法开机报 不可恢复的错误:securityagent无法创建所要求的机制Teamviewerauthplugin:start

无法开机报 不可恢复的错误:securityagent无法创建所要求的机制Teamviewerauthplugin:start 初步判断很有可能是TeamViewer的某个启动项或者签名书没有, 导致在预加载的时候无法加载TeamViewer。 然后出现这个情况有一个前提,那就是你用了第三…

神经网络框架的基本设计

一、神经网络框架设计的基本流程 确定网络结构、激活函数、损失函数、优化算法,模型的训练与验证,模型的评估和优化,模型的部署。 二、网络结构与激活函数 1、网络架构 这里我们使用的是多层感知机模型MLP(multilayer prrceptron)&#x…

如何委婉地告诉老板,BI连接金蝶ERP,对决策更有利?

网友:新入职一家企业,发现这家企业依旧是从金蝶ERP中导出数据做分析,这样数据量一大、科目变动多就很难保证数据分析的及时性、灵活性,说真的这对决策来说并不是什么好事。但老板似乎并不觉得这有什么不对。我该如何委婉地告诉老板…

Java 新手如何使用Spring MVC 中的查询字符串和查询参数

目录 前言 什么是查询字符串和查询参数? Spring MVC中的查询参数 处理可选参数 处理多个值 处理查询参数的默认值 处理查询字符串 示例:创建一个RESTful服务 总结 作者简介: 懒大王敲代码,计算机专业应届生 今天给大家…

基于SSM的班级事务管理系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用Vue技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…

《手把手教你》系列练习篇之6-python+ selenium自动化测试(详细教程)

1. 简介 今天我们还是继续练习练习基本功,各位小伙伴要耐住住性子,要耐得住寂寞啊,不要急躁,后面你会感谢你在前边的不断练习的。到后面也是检验你前边的学习成果的一次很好实践。 本文介绍如何通过link text、partial link text…

PHP运行环境之宝塔软件安装及Web站点部署流程

PHP运行环境之宝塔软件安装及Web站点部署流程 1.1安装宝塔软件 官网:https://www.bt.cn/new/index.html 自行注册账号,稍后有用 下载安装页面:宝塔面板下载,免费全能的服务器运维软件 1.1.1Linux 安装 如图所示,宝…

Image - 体积最小的 base64 encode 1*1透明图片,透明背景图片base64编码

背景 前端开发时&#xff0c;有些<img>标签的src属性的值来源于接口&#xff0c;在接口获取结果之前&#xff0c;这个src应该设置为什么呢&#xff1f; 误区&#xff1a;设置为# 有人把src设置为<img src"#" />。 这是有问题的&#xff0c;浏览器解析…

2024.1.5每日一题

LeetCode每日一题 1944.队列中可以看到的人数 1944. 队列中可以看到的人数 - 力扣&#xff08;LeetCode&#xff09; 题目描述 有 n 个人排成一个队列&#xff0c;从左到右 编号为 0 到 n - 1 。给你以一个整数数组 heights &#xff0c;每个整数 互不相同&#xff0c;heig…

Windows 下用 C++ 调用 Python

文章目录 Part.I IntroductionChap.I InformationChap.II 预备知识 Part.II 语法Chap.I PyRun_SimpleStringChap.II C / Python 变量之间的相互转换 Part.III 实例Chap.I 文件内容Chap.II 基于 Visual Studio IDEChap.III 基于 cmakeChap.IV 运行结果 Part.IV 可能出现的问题Ch…

硬盘检测软件 SMART Utility mac功能特色

SMART Utility for mac是一款苹果电脑上磁盘诊断工具&#xff0c;能够自动检测磁盘的状态和错误情况&#xff0c;分析并提供错误报告,以直观的界面让用户可明确地知道自己的磁盘状况。SMART Utility 支持普通硬盘HDD和固态硬盘SSD&#xff0c;能够显示出详细的磁盘信息&#xf…

C# OpenCvSharp DNN Gaze Estimation

目录 介绍 效果 模型信息 项目 代码 frmMain.cs GazeEstimation.cs 下载 C# OpenCvSharp DNN Gaze Estimation 介绍 训练源码地址&#xff1a;https://github.com/deepinsight/insightface/tree/master/reconstruction/gaze 效果 模型信息 Inputs ----------------…

Java重修第一天—学习数组

1. 认识数组 建议1.5倍速学习&#xff0c;并且关闭弹幕。 数组的定义&#xff1a;数组是一个容器&#xff0c;用来存储一批同种类型的数据。 下述图&#xff1a;是生成数字数组和字符串数组。 为什么有了变量还需要定义数组呢&#xff1f;为了解决在某些场景下&#xff0c;变…

ZigBee协议栈 -- 协议栈版本与IAR版本适配说明(Zstack2.5.1a + IAR10.30.1)

文章目录 协议栈安装工程适配 在讲到ZigBee协议栈的文章中所用的协议栈版本是Zstack2.5.1a&#xff0c;对于Zstack2.5.1a运行在IAR8.10中是可以完全适配进行编译开发的&#xff0c;现在较新版本的IAR都是10的版本以上了&#xff0c;有部分开发者习惯使用最新版本来获得更好的开…

正则表达式的语法

如果要想灵活的运用正则表达式&#xff0c;必须了解其中各种元素字符的功能&#xff0c;元字符从功能上大致分为&#xff1a; 限定符 选择匹配符 分组组合和反向引用符 特殊字符 字符匹配符 定位符 我们先说一下元字符的转义号 元字符(Metacharacter)-转义号 \\ \\ 符号…

关于系统设计的一些思考

0.前言 当我们站在系统设计的起点&#xff0c;面对一个新的需求&#xff0c;我们该如何开始呢&#xff1f;这是许多处于系统分析与设计领域的新手常常思考的问题。有些人可能会误以为&#xff0c;只要掌握了诸如面向对象、统一建模语言、设计模式、微服务、Serverless、Servic…