Vamos ver como prever o índice de qualidade do ar usando Python. O AQI é calculado com base na quantidade de poluentes químicos. Usando o aprendizado de máquina, podemos prever o AQI.

AQI: O índice de qualidade do ar é um índice para relatar a qualidade do ar diariamente. Em outras palavras, é uma medida de como a poluição do ar afeta a saúde de uma pessoa em um curto período de tempo. O AQI é calculado com base na concentração média de um determinado poluente medido em um intervalo de tempo padrão. Geralmente, o intervalo de tempo é de 24 horas para a maioria dos poluentes, 8 horas para monóxido de carbono e ozônio.

Podemos ver como a poluição do ar está olhando para o AQI

Nível AQIAlcance AQI
Boa0 - 50
Moderado51 - 100
Pouco saudável101 - 150
Insalubre para pessoas fortes151 - 200
Perigoso201+

Vamos encontrar o AQI baseado em poluentes químicos usando o conceito de aprendizado de máquina. 

Nota: Para baixar o conjunto de dados clique aqui .

Descrição do conjunto de dados

Ele contém 8 atributos, dos quais 7 são quantidades de poluição química e um é Índice de Qualidade do Ar. PM2.5-AVG, PM10-AVG, NO2-AVG, NH3-AVG, SO2-AG, OZONE-AVG são atributos independentes. air_quality_index é um atributo dependente. Já air_quality_index é calculado com base nos 7 atributos.

Como os dados são numéricos e não há valores ausentes nos dados, nenhum pré-processamento é necessário. Nosso objetivo é prever o AQI, então essa tarefa é Classificação ou regressão. Portanto, como nosso rótulo de classe é contínuo, a técnica de regressão é necessária.

A regressão é uma técnica de aprendizado supervisionado que se ajusta aos dados em um determinado intervalo. Exemplo de técnicas de regressão em Python:

  • Random Forest Regressor
  • Ada Boost Regressor
  • Bagging Regressor
  • Regressão Linear etc.
# 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()

Saída:

# 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]])

 
 

Saída:

Por isso, podemos dizer que, por dados de teste fornecidos, obtivemos 123 e 95, portanto, o AQI não é saudável.