使用Python预测空气质量指数

使用Python预测空气质量指数

让我们看看如何用Python预测空气质量指数。空气质量指数是根据化学污染物的数量来计算的。通过使用机器学习,我们可以预测空气质量指数。

空气质量指数:空气质量指数是一个报告每日空气质量的指数。换句话说,它是衡量空气污染在短时间内如何影响人的健康。空气质量指数是根据在一个标准时间间隔内测得的特定污染物的平均浓度计算的。一般来说,大多数污染物的时间间隔为24小时,一氧化碳和臭氧的时间间隔为8小时。

我们可以通过查看AQI来了解空气污染的情况

AQI水平 AQI范围
良好 0 – 50
中等 51 – 100
不健康的 101 – 150
对强壮的人不健康 151 – 200
有害的 201+

让我们用机器学习的概念找到基于化学污染物的空气质量指数。

数据集描述

它包含8个属性,其中7个是化学污染量,一个是空气质量指数。PM2.5-AVG, PM10-AVG, NO2-AVG, NH3-AVG, SO2-AG, OZONE-AVG是独立属性。因为空气质量指数是根据7个属性计算的。

由于数据是数字的,而且数据中没有缺失值,所以不需要进行预处理。我们的目标是预测空气质量指数,所以这项任务要么是分类,要么是回归。因此,由于我们的类标签是连续的,所以需要回归技术。

回归是有监督的学习技术,在给定范围内对数据进行拟合。Python中的回归技术实例。

  • 随机森林调节器
  • Ada Boost Regressor
  • Bagging Regressor
  • 线性回归等。
# 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()

输出:

使用Python预测空气质量指数

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程