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

news/2024/11/16 9:28:38/

普拉萨梅什·加德卡尔

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

一、介绍:

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

  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 msnofrom 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 timeimport 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.ppmy.cn/news/1022688.html

相关文章

SQL常见命令语句

1.连接数据库 mysql (-h IP) -u root -p 密码2.查看数据库 show databases3.使用数据库 use db_name4.查看表 show tables [from db_name]5.查看表结构 desc tb_name6.创建、删除、选择数据库 create database db_namedrop database db_nameuse db_name7.数据类型 参考链…

巨人互动|Meta海外户Meta的业务工具转化API

Meta的业务工具转化API是一项创新技术,它可以帮助企业实现更高效的业务工具转化和集成。通过这个API,企业可以将不同的业务工具整合到一个统一的平台上,提高工作效率和协作能力。本文小编将介绍Meta的业务工具转化API的功能和优势。 巨人互动…

RHCE使用RHEL系统角色题报错

题目: 使用 RHEL 系统角色 4. 安装 RHEL 系统角色软件包,并创建符合以下条件的 playbook/home/curtis/ansible/selinux.yml : 在所有受管节点上运行 使用 selinux 角色 配置该角色,以强制状态使用 selinux 报错一: [c…

系统集成项目管理工程师好考吗?不报班能考过吗?

即使不参加培训班,只要自我控制能力还不错,也可以通过考试。中级集成考试难度不大,主要是要理解47个过程的输入输出和工具的使用,很多题目都是按照这个逻辑出的。建议可以在网上或者刷题APP上找一些资料和真题来练习,因…

5V升压到12V2A芯片方案

5V升压到12V2A芯片方案,采用了一款2.7V-18V输入,4.5V-18V输出的峰值10A同步升压芯片,内置了MOS,封装为QFN13。 在电子设备中,经常会遇到需要将低电压提升到较高电压的情况。例如,对于一些需要12V电压供电的…

有人真的会去分析代码吗

很早之前使用 webpack 的时候,也有类似的插件,分析打包出来之后的代码,分别是哪些模块比较庞大,针对打包的内容进行优化。说实话,知道归知道,但是没有哪个项目使用分析过。最近刚好看见了两个插件&#xff…

【Spring专题】Spring之Bean的生命周期源码解析——阶段一(扫描生成BeanDefinition)

目录 前言阅读指引阅读建议 课程内容一、生成BeanDefinition1.1 简单回顾1.2 概念回顾1.3 核心方法讲解 二、方法讲解2.1 ClassPathBeanDefinitionScanner#scan2.2 ClassPathBeanDefinitionScanner#doScan2.3 ClassPathScanningCandidateComponentProvider#findCandidateCompon…

从金蝶云星空到金蝶云星空通过接口配置打通数据

从金蝶云星空到金蝶云星空通过接口配置打通数据 源系统:金蝶云星空 金蝶K/3Cloud结合当今先进管理理论和数十万家国内客户最佳应用实践,面向事业部制、多地点、多工厂等运营协同与管控型企业及集团公司,提供一个通用的ERP服务平台。K/3Cloud支持的协同应…