日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python空气质量分析与预测_AQI(空气质量指数)分析与预测(一)

發(fā)布時(shí)間:2024/3/12 python 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python空气质量分析与预测_AQI(空气质量指数)分析与预测(一) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

任務(wù)說明

期望能夠運(yùn)用數(shù)據(jù)分析的相關(guān)技術(shù),對全國城市空氣質(zhì)量進(jìn)行研究與分析,希望能夠解決如下疑問:

哪些城市的空氣質(zhì)量較好/較差?【描述性統(tǒng)計(jì)分析】

空氣質(zhì)量在地理位置上,是否具有一定的規(guī)律?【描述性統(tǒng)計(jì)分析】

臨海城市的空氣質(zhì)量是否有別于內(nèi)陸城市?【推斷統(tǒng)計(jì)分析】

空氣質(zhì)量主要受哪些因素影響?【相關(guān)系數(shù)分析】

全國城市空氣質(zhì)量普遍處于何種水平?【區(qū)間估計(jì)】

怎樣預(yù)測一個(gè)城市的空氣質(zhì)量?【統(tǒng)計(jì)建模】

數(shù)據(jù)集描述

我們獲取了2015年空氣質(zhì)量數(shù)據(jù)集,該數(shù)據(jù)集包含全國主要城市的相關(guān)數(shù)據(jù)以及空氣質(zhì)量指數(shù)。

讀取數(shù)據(jù)

導(dǎo)入需要的庫,同時(shí)進(jìn)行一些初始化的設(shè)置

#導(dǎo)入相關(guān)庫

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

import warnings

sns.set(style='darkgrid')

plt.rcParams['font.family'] = 'SimHei'

plt.rcParams['axes.unicode_minus'] = False

warnings.filterwarnings('ignore')

加載數(shù)據(jù)集

#加載之后可以使用head/tail/sample等方法查看數(shù)據(jù)的大致情況

data = pd.read_csv('data.csv')

data.head()

數(shù)據(jù)清洗

缺失值

1 缺失值探索

我們可以使用如下方法查看缺失值:

info

isnull

data.info()

data.isnull().sum(axis=0) #按列查找空值,并將空值累加

如上兩種方式都可以看出,Precipitation列中有四個(gè)空值

2 缺失值處理

對于缺失值,我們可以使用如下方式處理:

刪除缺失值

僅適用于缺失數(shù)量很少的情況

填充缺失值

1 數(shù)值變量

?均值填充

?中位數(shù)填充

2 類別變量

?眾數(shù)填充

?單獨(dú)作為一個(gè)類別

3 額外處理說明

?缺失值小于20%,直接填充

?缺失值在20%-80%,填充變量后,同時(shí)增加一列,標(biāo)記該列是否缺失,方便參與后續(xù)建模

?缺失值大于80%,不使用原始列,而是增加一列,標(biāo)記該列是否缺失,方便參與后續(xù)建模

#查看數(shù)據(jù)分布情況

print(data['Precipitation'].skew()) #查看偏度值,確認(rèn)左偏或右偏

偏度值大于0,輕微右偏

sns.distplot(data['Precipitation'].dropna())

#distplot中不允許有空值,故使用dropna函數(shù)將空值去除

根據(jù)偏度值及圖像可知,數(shù)據(jù)呈右偏分布,故使用中位數(shù)填充,代碼如下:

data['Precipitation'].fillna(data[].median(), inplace=True)

異常值

1 異常值探索

我們可以使用如下方式,發(fā)現(xiàn)異常值:

通過describe查看數(shù)值信息

3σ方式

使用箱線圖輔助

相關(guān)異常檢測算法

describe方法

調(diào)用DataFrame對象的describe方法,可以顯示數(shù)據(jù)的統(tǒng)計(jì)信息,不過此種方法僅能作為一種簡單的異常探索方式。

data.describe()

3σ方法

根據(jù)正態(tài)分布的特性,我們可以將3σ之外的數(shù)據(jù),視為異常值。我們以GDP為例,首先繪制GDP的分布。

sns.distplot(data['GDP'])

print(data['GDP'].skew()) #偏度值

可以看出此列呈嚴(yán)重的右偏分布,也就是存在部分極大的異常值,可以獲取這些異常值。

mean, std = data['GDP'].mean(), data['GDP'].std()

lower, upper = mean-3*std, mean+3*std

print('均值:',mean)

print('標(biāo)準(zhǔn)差:',std)

print('下限:',lower)

print('上限:',upper)

data[(data['GDP']upper)] #獲取全部異常信息

箱線圖

箱線圖是一種常見的異常檢測方式。

sns.boxplot(data=data['GDP'])

2 異常值處理

對于異常值,我們可以采用如下的方式處理:

刪除異常值

視為缺失值處理

對數(shù)轉(zhuǎn)換

使用臨界值填充

使用分箱法離散化處理

對數(shù)轉(zhuǎn)換

如果數(shù)據(jù)中存在較大的異常值,我們可以通過取對數(shù)來進(jìn)行轉(zhuǎn)換,這樣可以得到一定的緩解。例如,GDP變量呈現(xiàn)右偏分布,我們可以進(jìn)行取對數(shù)轉(zhuǎn)換。

fig, ax = plt.subplots(1, 2)

fig.set_size_inches(15, 5)

sns.distplot(data['GDP'], ax=ax[0])

sns.distplot(np.log(data['GDP']), ax=ax[1])

取對數(shù)的方式比較簡單,不過也存在一些局限:

取對數(shù)只能針對正數(shù)操作,不過我們可以通過如下的方式進(jìn)行轉(zhuǎn)換:

np.sign(X) * np.log(np.abs(X)+1)

適合于右偏分布,不適合左偏分布

使用邊界值替換

我們可以對異常值進(jìn)行“截?cái)唷碧幚?#xff0c;即使用臨界值替換異常值。例如:在3σ與箱線圖中,就可以這樣處理。

分箱離散化

有時(shí)候,特征對目標(biāo)值存在一定的影響,但是這種影響可能未必是線性的增加,此時(shí)我們就可以使用分箱方式,對特征進(jìn)行離散化處理。

重復(fù)值

1 重復(fù)值探索

使用duplicate檢查重復(fù)值,可配合keep參數(shù)進(jìn)行調(diào)整。

#發(fā)現(xiàn)重復(fù)值

print(data.duplicated().sum())

#查看哪些記錄出現(xiàn)了重復(fù)值

data[data.duplicated(keep=False)] #顯示所有重復(fù)值

2 重復(fù)值處理

重復(fù)值對數(shù)據(jù)分析通常沒用,直接刪除即可。

data.drop_duplicates(inplace=True) #刪除重復(fù)值

data.duplicated().sum() #檢驗(yàn)重復(fù)值是否成功刪除

總結(jié)

以上是生活随笔為你收集整理的python空气质量分析与预测_AQI(空气质量指数)分析与预测(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。