研究论文关于火灾的烟雾探测

news2024/10/3 0:23:54

普拉萨梅什·加德卡尔

探索所有模型以选择最佳模型。

一、介绍:

        烟雾探测器检测烟雾并触发警报以提醒他人。通常,它们存在于办公室、家庭、工厂等。通常,烟雾探测器分为两类:

  1. Photoelectric Smoke Detector- 设备检测光强度,如果低于设定的阈值,则生成警报,因为烟雾会导致灰尘颗粒和烟雾导致光强度降低。
  2. Ionization Smoke Detector- 这种类型的探测器配备了一个电子电路,可以测量电流差,并在超过某个阈值时提醒用户。由于烟雾和管道颗粒导致离子不能自由移动,电路中的电流将减少。

        使用提供的数据集,我们的目标是开发一个人工智能模型,如果检测到烟雾,可以准确地发出警报。我们的目标是根据其准确性比较许多分类模型,例如 KNN、逻辑回归等,直观地表示它们,并从中选择最好的。

数据是从这里获取的。

二、导入所需库 

#Importing all essential libraries
import numpy as np
import pandas as pd
import seaborn as sns
from plotly.subplots import make_subplots
import matplotlib.pyplot as plt
import plotly.express as px
import missingno as msno

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

#Importing Models
from sklearn.neighbors import KNeighborsClassifier
from sklearn.linear_model import LogisticRegression,SGDClassifier
from sklearn.ensemble import RandomForestClassifier,GradientBoostingClassifier,AdaBoostClassifier
from sklearn.ensemble import BaggingClassifier
from sklearn.svm import SVC
from sklearn.naive_bayes import GaussianNB
from sklearn.dummy import DummyClassifier
from sklearn.tree import ExtraTreeClassifier 


from sklearn.metrics import accuracy_score
import time

import warnings
warnings.filterwarnings('ignore')

三、数据探索

3.1 特征分布

  1. UTC - The time when the experiment was performed.
  2. Temperature - Temperature of Surroundings. Measured in Celsius
  3. Humidity - The air humidity during the experiment.
  4. TVOC - Total Volatile Organic Compounds. Measured in ppb (parts per billion)
  5. eCo2 - CO2 equivalent concentration. Measured in ppm (parts per million)
  6. Raw H2 - The amount of Raw Hydrogen present in the surroundings.
  7. Raw Ethanol- 周围环境中存在的生乙醇量。
  8. Pressure-气压。以 hPa 为单位测量
  9. PM1.0- 直径小于1.0微米的颗粒物。
  10. PM2.5- 直径小于2.5微米的颗粒物。
  11. NC0.5- 直径小于0.5微米的颗粒物的浓度。
  12. NC1.0- 直径小于1.0微米的颗粒物的浓度。
  13. NC2.5- 直径小于2.5微米的颗粒物的浓度。
  14. CNT- 简单计数。
  15. Fire Alarm-(现实)如果发生火灾,则值为1,否则为0。
data = pd.read_csv('../input/smoke-detection-dataset/smoke_detection_iot.csv',index_col = False)
data.head()

数据前五行(来源:作者)

data.shape

data.describe().T.sort_values(ascending = 0,by = "mean").\
style.background_gradient(cmap = "BuGn")\
.bar(subset = ["std"], color ="red").bar(subset = ["mean"], color ="blue")

描述数据(来源:作者)

#Getting all the unique values in each feature
features = data.columns
for feature in features:
    print(f"{feature} ---> {data[feature].nunique()}")

所有变量的唯一值(来源:作者)

3.2 空值分布:

data.isna().sum()

空值计数(来源:作者)

msno.matrix(data)

空值可视化(来源:作者)

3.3 数据清理:

        数据集中没有缺失值,这使我们能够更有效地分析数据并构建准确的预测模型。

        如果数据集包含缺失值,请参考以下链接,帮助您进行数据清洗:

  1. 开始使用 Kaggle(英语:Kaggle)
  2. 极客的极客

        尽管有些功能是无用的,并且会妨碍我们的模型。这些是:

  1. UTC- 它仅指示实验进行的时间,因此不会影响结果。
  2. Unnamed :0- 这只是索引。
  3. CNT- 这是计数(类似于索引)。

        由于这些属性是无用的,我们将删除它们。

del_features = ['Unnamed: 0','UTC','CNT']
for feature in del_features:
    data = data.drop(feature,axis = 1)
data.head()

删除不需要的功能(来源:作者)

3.4 ⭐重要观察 

  • 数据中总共有行和列。6236016
  • 数据不包含任何缺失值。
  • 我们删除 、 属性,因为它们对我们毫无用处。UTCUnnamed 0:CNT
  • 完成所有修改后,我们总共拥有将对其执行 EDA 的属性。13
  • 总共有 (62360 x 13) 个观测值。810680

四、探索性数据分析 

4.1 使用目标变量进行特征分析 

sns.set_style("whitegrid")
sns.histplot(data['Fire Alarm'])

Histogram of Frequency (Source: Author)

plt.figure(figsize = (6,6))
sns.kdeplot(data = data,x = 'TVOC[ppb]')

Probability Density Function (Source: Author)

4.2 HeatMap :

plt.figure(figsize = (12,12))
sns.heatmap(data.corr(),annot = True,cmap = 'GnBu')

热图(来源:作者)

4.3 ⭐重要观察:

  • 考虑到相关性很高,我们可以这么说,并且相关性很高。>=0.65PressureHumidity
  • 所有 和 彼此之间具有很高的相关性。PM'sNC's
  • 的均值和中位数之间的差值非常高。这告诉我们存在许多异常值。TVOCPM'sNC's
  • 和 是分类中非常重要的属性,因为目标变量的均值和中位数之间的差异非常大。TVOCPM'sNC's

五、建模 

5.1 数据预处理 

X = data.copy()
X.drop('Fire Alarm',axis = 1,inplace = True)
y = data['Fire Alarm']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2,random_state=0)
ss = StandardScaler()
X_train = ss.fit_transform(X_train)
X_test = ss.transform(X_test)

5.2 模型实现:

models = [KNeighborsClassifier(),SGDClassifier(),LogisticRegression(),RandomForestClassifier(),
GradientBoostingClassifier(),AdaBoostClassifier(),BaggingClassifier(),
SVC(),GaussianNB(),DummyClassifier(),ExtraTreeClassifier()]
Name = []
Accuracy = []
Time_Taken = []
for model in models:
    Name.append(type(model).__name__)
    begin = time.time()
    model.fit(X_train,y_train)
    prediction = model.predict(X_test)
    end = time.time()
    accuracyScore = accuracy_score(prediction,y_test)
    Accuracy.append(accuracyScore)
    Time_Taken.append(end-begin)
Dict = {'Name':Name,'Accuracy':Accuracy,'Time Taken':Time_Taken}
model_df = pd.DataFrame(Dict)
model_df

Accuracy and Time Taken (Source: Author)

5.3 Accuracy vs Model:

model_df.sort_values(by = 'Accuracy',ascending = False,inplace = True)
fig = px.line(model_df, x="Name", y="Accuracy", title='Accuracy VS Model')
fig.show()

Accuracy Vs Model (Source: Author)

5.4 Time Taken vs Model:

model_df.sort_values(by = 'Time Taken',ascending = False,inplace = True)
fig = px.line(model_df, x="Name", y="Time Taken", title='Time Taken VS Model')
fig.show()

所用时间与模型(来源:作者)

六、结论 

        作为上述分析的结果,我们可以看到ExtraTreeClassifier需要更少的训练和执行时间,并提供最高级别的准确性。

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

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

相关文章

8086汇编语言工作环境 百度网盘下载

链接:https://pan.baidu.com/s/1-1K7gX859xejaUK70OTgtw?pwdbfa5 提取码:bfa5 为了方便下载,找了很多资料,也是从其他人那边分享过来的,也方便其他人 文件内容:

如何快速解决集成环信IM遇到的问题?

1、环信FAQ频道发布了 环信FAQ帮助中心提供了各客户端、RESTful API、环信控制台以及商务相关的集成环信常见问题及解决方法,帮您快速解决集成问题 2、当我有问题时,从哪里进FAQ? 干脆收藏这个网址:https://faq.easemob.com/ 环…

逆向破解学习-割绳子

试玩 支付失败,请检查网络设置 Hook成功 Hook代码 import android.app.Application; import android.content.Context;import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.XposedHelpers; import de.robv.android.xposed.callbacks.XC_…

书写自动智慧:探索Python文本分类器的开发与应用:支持二分类、多分类、多标签分类、多层级分类和Kmeans聚类

书写自动智慧:探索Python文本分类器的开发与应用:支持二分类、多分类、多标签分类、多层级分类和Kmeans聚类 文本分类器,提供多种文本分类和聚类算法,支持句子和文档级的文本分类任务,支持二分类、多分类、多标签分类…

8月11日上课内容 nginx的多实例和动静分离

多实例部署 在一台服务器上有多个tomcat的服务。 配置多实例之前,看单个实例是否访问正常。 1.安装好 jdk 2.安装 tomcat cd /opt tar zxvf apache-tomcat-9.0.16.tar.gz mkdir /usr/local/tomcat mv apache-tomcat-9.0.16 /usr/local/tomcat/tomcat1 cp -a /usr…

使用Javassist实现热修复

工程目录图 请点击下面工程名称,跳转到代码的仓库页面,将工程 下载下来 Demo Code 里有详细的注释 代码:LearnRobustFix

【学习FreeRTOS】第5章——FreeRTOS任务挂起与恢复

1.任务的挂起与恢复的API函数 vTaskSuspend() ——挂起任务(类似暂停,可恢复,但删除任务,无法恢复)vTaskResume() ——恢复被挂起的任务xTaskResumeFromISR()—— 在中断中恢复被挂起的任务 1.1.任务挂起函数vTaskSu…

收银一体化-亿发2023智慧门店新零售营销策略,实现全渠道运营

伴随着互联网电商行业的兴起,以及用户理念的改变,大量用户从线下涌入线上,传统的线下门店人流量急剧收缩,门店升级几乎成为了每一个零售企业的发展之路。智慧门店新零售收银解决方案是针对传统零售企业面临的诸多挑战和问题&#…

谷歌全栈多平台应用开发神器Project IDX来了!PaLM 2加持,代码效率翻倍

一直以来,从0开始构建应用,都是一项复杂的工作。尤其是跨越手机、Web和桌面平台的程序。 这是一片无尽的复杂海洋,需要把技术堆栈融合在一起,来引导、编译、测试、部署、监控应用程序。 多年来,谷歌一直致力于让多平…

批量操作安装功能

功能结构设计: 分别使用单线程、多线程、多进程、协程分别实现功能: 一、 单线程实现功能 1.1单线程 实现发送点击生成 transaction_id; click01.py : 发送点击模块; base.py: 封装一些公共的方法&…

2023下半年软考改成机考,对考生有哪些影响?

软考改革成无纸化考试已经实锤。根据陕西软考办官网的消息,从2023年11月起,软考的所有科目都将改为机器考试形式。详情请参阅: 那么软考考试改为机考后,对我们会有哪些影响呢?我来简单概括一下。 1、复习的方法可以根…

苍穹外卖day12笔记

一、工作台 联系昨天 要实现的功能和昨天差不多,都是查询数据。 所以我们就写出查询语句,然后直接导入已经写好的代码。 实现效果 查询语句 今日数据 营业额 select count(amount) from orders where status5 and order_time > #{begin} and …

【二分+贪心】CF1665 C

Problem - C - Codeforces 题意: 思路: 一开始想太简单wa6了 只想到先感染大的分量,然后最后把最大的分量剩下的染色 但是可能会有别的分量更大(因为最后给最大的染色之后可能不再是最大的) 可以用堆维护&#xf…

SQL | 高级数据过滤

5-高级数据过滤 通过组合WHERE子句,建立功能更强的检索语句。 5.1-组合WHERE子句 前面写的都是单一条件下的WHERE子句,SQL语句允许给出多个WHERE子句来组合检索,这些WHERE子句通过AND子句或者OR子句进行连接。 操作符(operato…

将达梦DM8数据库JDBC驱动注册到本地Maven仓库安装

这里写目录标题 1下载DmJdbcDriver18.jar2,以管理员身份运行CMD窗口,然后执行如下安装命令:3.pom文件添加引用 1下载DmJdbcDriver18.jar 我本地放在d:\DmJdbcDriver.jar 2,以管理员身份运行CMD窗口,然后执行如下安装命令: mvn …

SQL Server基础之游标

一:认识游标 游标是SQL Server的一种数据访问机制,它允许用户访问单独的数据行。用户可以对每一行进行单独的处理,从而降低系统开销和潜在的阻隔情况,用户也可以使用这些数据生成的SQL代码并立即执行或输出。 1.游标的概念 游标是…

ELK的搭建和使用

ELK的搭建和使用 1、什么是ELK 日志收集平台有多种组合方式: ELK Stack 方式:Elasticsearch Logstash Filebeat Kibana,业界最常见的架构。 Elasticsearch Logstash Kafka Kibana,用上了消息中间件,但里面也有…

sxs卡丢失数据如何找回?sxs卡数据丢失原因和修复办法分享!

说起sxs卡,你们是否有所了解呢?sxs卡具有很好的传输性能,能够存储照片和视频数据,主要被放置在索尼XDCAM EX型摄像机上。 而在使用sxs卡设备过程中,难免和其他设备一样,容易出现数据丢失情况。而如果丢失的…

不一样的新体验!太川股份联手菊风打造智能门禁可视对讲

在智能化浪潮的发展中,实时音视频等信息技术的加持使得楼宇对讲门禁的功能越发多且智能。作为安防产业的三大支柱之一,门禁对讲逐渐衍生为社区与家庭智慧化融合的“桥梁”。菊风用实时音视频技术赋能太川楼宇门禁可视对讲应用,将在兼顾稳定楼…

【C++从0到王者】第二十站:模板进阶

文章目录 前言一、typename 和 class的一些区别二、非类型模板参数1.非类型模板参数介绍2.array容器 三、模板的特化1.函数模板的特化2.类模板的特化1.全特化2.偏特化(半特化) 三、模板的分离编译四、总结 前言 在前面我们使用模板主要是为了解决两类问…