Predicción del índice de calidad del aire usando Python

Veamos cómo predecir el índice de calidad del aire usando Python. El AQI se calcula en función de la cantidad de contaminantes químicos. Mediante el uso de aprendizaje automático, podemos predecir el AQI.

AQI: El índice de calidad del aire es un índice para informar la calidad del aire diariamente. En otras palabras, es una medida de cómo la contaminación del aire afecta la salud en un corto período de tiempo. El AQI se calcula en base a la concentración promedio de un contaminante en particular medido durante un intervalo de tiempo estándar. Generalmente, el intervalo de tiempo es de 24 horas para la mayoría de los contaminantes, 8 horas para el monrust de carbono y el ozono.

Podemos ver cómo es la contaminación del aire mirando el AQI

Nivel de ICA Rango de ICA
Bueno 0 – 50
Moderado 51 – 100
Insalubre 101 – 150
Insalubre para personas fuertes 151 – 200
Peligroso 201+

Busquemos el AQI basado en contaminantes químicos utilizando el concepto de aprendizaje automático. 

Nota: Para descargar el conjunto de datos, haga clic aquí .

Descripción del conjunto de datos

Contiene 8 atributos, de los cuales 7 son cantidades de contaminación química y uno es el índice de calidad del aire. PM2.5-PROMEDIO, PM10-PROMEDIO, NO2-PROMEDIO, NH3-PROMEDIO, SO2-AG, OZONO-PROMEDIO son atributos independientes. air_quality_index es un atributo dependiente. Dado que air_quality_index se calcula en función de los 7 atributos.

Como los datos son numéricos y no faltan valores en los datos, no se requiere preprocesamiento. Nuestro objetivo es predecir el AQI, por lo que esta tarea es Clasificación o regresión. Entonces, como nuestra etiqueta de clase es continua, se requiere una técnica de regresión .

La regresión es una técnica de aprendizaje supervisado que ajusta los datos en un rango determinado. Ejemplo de técnicas de regresión en Python:

  • Regresor de bosque aleatorio
  • Regresor de impulso de Ada
  • Regresor de embolsado
  • Regresión lineal, etc

Python3

# importing pandas module for data frame
import pandas as pd
 
# loading dataset and storing in train variable
train=pd.read_csv('AQI.csv')
 
# display top 5 data
train.head()

Producción:

Python3

# importing Randomforest
from sklearn.ensemble import AdaBoostRegressor
from sklearn.ensemble import RandomForestRegressor
 
# creating model
m1 = RandomForestRegressor()
 
# separating class label and other attributes
train1 = train.drop(['air_quality_index'], axis=1)
target = train['air_quality_index']
 
# Fitting the model
m1.fit(train1, target)
'''RandomForestRegressor(bootstrap=True, ccp_alpha=0.0, criterion='mse',
                      max_depth=None, max_features='auto', max_leaf_nodes=None,
                      max_samples=None, min_impurity_decrease=0.0,
                      min_impurity_split=None, min_samples_leaf=1,
                      min_samples_split=2, min_weight_fraction_leaf=0.0,
                      n_estimators=100, n_jobs=None, oob_score=False,
                      random_state=None, verbose=0, warm_start=False)'''
 
# calculating the score and the score is  97.96360799890066%
m1.score(train1, target) * 100
 
# predicting the model with other values (testing the data)
# so AQI is 123.71
m1.predict([[123, 45, 67, 34, 5, 0, 23]])
 
# Adaboost model
# importing module
 
# defining model
m2 = AdaBoostRegressor()
 
# Fitting the model
m2.fit(train1, target)
 
'''AdaBoostRegressor(base_estimator=None, learning_rate=1.0, loss='linear',
                  n_estimators=50, random_state=None)'''
 
# calculating the score and the score is  96.15377360010211%
m2.score(train1, target)*100
 
# predicting the model with other values (testing the data)
# so AQI is 94.42105263
m2.predict([[123, 45, 67, 34, 5, 0, 23]])

 

Producción:

 

Por esto, podemos decir que según los datos de prueba dados, obtuvimos 123 y 95, por lo que el AQI no es saludable.

Publicación traducida automáticamente

Artículo escrito por sravankumar8128 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *