色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

AQI分析與預測-2

汽車電子技術 ? 來源:Python數據分析之旅 ? 作者:cauwfq ? 2023-02-23 16:30 ? 次閱讀

圖片

一.項目背景

AQI(air Quality Index)指空氣質量指數,用來衡量空氣清潔或者污染程度。值
越小,表示空氣質量越好。近年來因為環境問題,空氣質量越來越受到人們重視。
上篇文章[AQI分析與預測(一)](http://mp.weixin.qq.com/s?__biz=MzIzODI4ODM2MA==&mid=2247486525&idx=1&sn=a92d40e0d715f9ab63563b4e8b054a0d&chksm=e93ae0bade4d69ac57407216484cdbb6d7a8a812baef1c0e4ab0d5aeae0c7f0aff9fd274127b&scene=21#wechat_redirect)我們進行了初步分析,主要分析了空氣質量最好/差城市和臨海城市是否空氣質量優于內陸城市這兩個問題,本篇我們在之前基礎上繼續研究如下問題。
1.空氣質量受那些因素影響
2.關于空氣質量驗證
3.構建空氣質量預測模型

二.實現過程

1.空氣質量受那些因素影響
  》》指標:協方差和相關系數
  》》圖形:熱力圖
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings


sns.set(style="darkgrid", font_scale=1.2)
plt.rcParams["font.family"] = "SimHei"
plt.rcParams["axes.unicode_minus"] = False
warnings.filterwarnings("ignore")


#讀取文件
data = pd.read_csv("data.csv")
#查看數據
data.head()

圖片

#kind:繪制圖像的類型。可選值:
#scatter:散點圖(默認值)。
#reg:帶有回歸線的散點圖。
#vars:顯示哪些變量之間的兩兩關系,默認為顯示所有變量。
sns.pairplot(data, vars=["AQI", "PopulationDensity", "GreenCoverageRate"])

圖片

圖片

#計算相關數據
x = data["AQI"]
y = data["Precipitation"]
#計算AQI與Precipitation的協方差。
a = (x - x.mean()) * (y - y.mean())
#計算協方差
cov = np.sum(a) / (len(a) - 1)
print("協方差:", cov)

圖片

圖片

#計算AQI與Precipitation的相關系數。
corr = cov / np.sqrt(x.var() * y.var())
print("相關系數:", corr)

圖片

#pandas封裝了相關方法
print("協方差:", x.cov(y))
print("相關系數:", x.corr(y))

圖片

#初始化畫布
plt.figure(figsize=(15, 10))
#繪制熱力圖
ax = sns.heatmap(data.corr(),
                 cmap=plt.cm.RdYlGn, 
                 annot=True,
                 fmt=".2f")
  
 結論:降雨量越多,空氣質量越好;維度越低,空氣質量越好

圖片

2.關于空氣質量驗證
  》》問題:全國所有城市的空氣質量指數均值在71左右,請問此結論準確嗎?
  》》方法:假設檢驗
該需求是驗證樣本均值是否等于總體均值,根據條件,我們可以使用單樣本t檢驗,
置信度為95%。
#進行單樣本t檢驗
r = stats.ttest_1samp(data["AQI"], 71)
#輸出檢驗統計量
print("t值:", r.statistic)
#輸出p值
print("p值:", r.pvalue)


結論:我們可以看到P值是大于0.05的,y因此我們無法拒絕原假設,因此接受原假設

圖片

#計算均值
mean = data["AQI"].mean()
#計算標準差
std = data["AQI"].std()
#計算置信區間
stats.t.interval(0.95, df=len(data) - 1, loc=mean, scale=std / np.sqrt(len(data)))


結論:我們就計算出全國城市平均空氣質量指數,95%的可能大致在70.63~80.04之間

圖片

3.構建空氣質量預測模型
  》》對于一些城市,如果能夠已知降雨量,溫度,經緯度等指標,我們是否能夠預測該
城市的空氣質量指數呢?因此我們需要構建模型,預測新的數據。
  》》過程:基模型構建,異常值處理后構建模型和特征選擇后構建模型,將結果與基模
型進行對比,看看是否進行優化。
#進行類別轉換
data["Coastal"] = data["Coastal"].map({"是": 1, "否": 0})
#統計類別數目
data["Coastal"].value_counts()

圖片

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split


#City(城市名稱)對預測毫無用處,刪掉。
X = data.drop(["City","AQI"], axis=1)
#目標值
y = data["AQI"]
#分離測試集和訓練集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=0)
#構建基礎線性回歸模型
lr = LinearRegression()
#訓練模型
lr.fit(X_train, y_train)
#輸出訓練集模型評分
print(lr.score(X_train, y_train))
#輸出測試集模型評分
print(lr.score(X_test, y_test))

圖片

#繪制圖形觀察


#預測y值
y_hat = lr.predict(X_test)
#初始化畫布
plt.figure(figsize=(15, 5))
#繪制真實值折線圖
plt.plot(y_test.values,
         "-r", 
         label="真實值",
         marker="o")
#繪制預測值折線圖
plt.plot(y_hat,
         "-g",
         label="預測值",
         marker="D")
#設置圖例
plt.legend(loc="upper left")
#設置標題
plt.title("線性回歸預測結果", fontsize=20)

圖片

# Coastal是類別變量,映射為離散變量,不會有異常值。


#遍歷列
for col in X.columns.drop("Coastal"):
    #對數值型數據進行判斷
    if pd.api.types.is_numeric_dtype(X_train[col]):
        #獲取分位數
        quartile = np.quantile(X_train[col], [0.25, 0.75])
        #計算IQR
        IQR = quartile[1] - quartile[0]
        #計算正常數值下限
        lower = quartile[0] - 1.5 * IQR
        #計算正常數值上限
        upper = quartile[1] + 1.5 * IQR
        #用邊界值進行填充異常值
        X_train[col][X_train[col] < lower] = lower
        X_train[col][X_train[col] > upper] = upper
        X_test[col][X_test[col] < lower] = lower
        X_test[col][X_test[col] > upper] = upper
#訓練模型
lr.fit(X_train, y_train)
#去除異常值后評估模型效果
print(lr.score(X_train, y_train))
print(lr.score(X_test, y_test))


結論:去除異常值后所構建模型效果相比之前有所改進

圖片

#對數據進行標準化處理,


from sklearn.preprocessing import StandardScaler
#數據標準化
s = StandardScaler()
#對訓練集進行標準化
X_train_scale = s.fit_transform(X_train)
#對測試集進行標準化
X_test_scale = s.transform(X_test)
#對數據進行特征選擇,目的是提高模型準確率和訓練速度


REFCV方法
  》》RFE(REcursive feature elimination):遞歸特征消除,用來對特征進行重要性評級
  》》CV(Cross Validation):交叉驗證,通過交叉驗證,選擇最佳數量特征
具體過程如下:
RFE階段:
  1.初始特征集為所有可用特征
  2.使用當前特征集進行建模,然后計算每個特征的重要性
  3.刪除最不重要的一個或者多個特征,更新特征集
  4.跳到步驟2,直到完成所有特征集重要性評級
CV階段
  1.根據REF階段確定的特征重要性,依次選擇不同數量特征
  2.對選定的特征集進行交叉驗證
  3.確定平均分最高的特征數量,完成特征選擇。
from sklearn.feature_selection import RFECV
#estimator:要操作的模型。
#step:每次刪除的變量數。
#cv:使用的交叉驗證折數。
#n_jobs:并發的數量。
#scoring: 評估的方式。
rfecv = RFECV(estimator=lr, 
              step=1,
              cv=5, 
              n_jobs=-1, 
              scoring="r2")
rfecv.fit(X_train_scale, y_train)
#返回經過選擇之后,剩余的特征數量。
print(rfecv.n_features_)
#返回經過特征選擇后,使用縮減特征訓練后的模型。
print(rfecv.estimator_)
#返回每個特征的等級,數值越小,特征越重要。
print(rfecv.ranking_)
#返回布爾數組,用來表示特征是否被選擇。
print(rfecv.support_)
#返回對應數量特征時,模型交叉驗證的評分。
print(rfecv.grid_scores_)

圖片

#繪制圖形
plt.plot(range(1, len(rfecv.grid_scores_) + 1), 
         rfecv.grid_scores_,
         marker="o")
#設置x軸標簽
plt.xlabel("特征數量")
#設置y軸標簽
plt.ylabel("交叉驗證$R^2$值")

圖片

print("剔除的變量:", X.columns.values[~rfecv.support_])
#應用到訓練集
X_train_eli = rfecv.transform(X_train_scale)
#應用到測試集
X_test_eli = rfecv.transform(X_test_scale)
#輸出模型評分
print(rfecv.estimator_.score(X_train_eli, y_train))
print(rfecv.estimator_.score(X_test_eli, y_test))

圖片

#獲取列名與對應的權重,構成一個元組,作為列表的元素。
li = list(zip(X.columns.values[rfecv.support_], rfecv.estimator_.coef_))
#根據權重的絕對值,對列表進行降序排列。
li.sort(key=lambda x: abs(x[1]), reverse=True)
#轉換為Series
s = pd.Series(dict(li))
#初始化畫布
plt.figure(figsize=(15, 5))
#繪制柱狀圖
ax = sns.barplot(y=s.index, x=s.values)
for y, x in enumerate(s):
    #繪制標注
    t = ax.text(x / 2, y, round(x, 3))
    #設置居中對齊
    t.set_ha("center")
#顯示圖形
plt.show()

圖片

from sklearn.preprocessing import KBinsDiscretizer
#KBinsDiscretizer K個分箱的離散器。用于將數值(通常是連續變量)變量進行區間離散化操作。
#n_bins:分箱(區間)的個數。
#encode:離散化編碼方式。分為:onehot,onehot-dense與ordinal。
#   onehot:使用獨熱編碼,返回稀疏矩陣。
#   onehot-dense:使用獨熱編碼,返回稠密矩陣。
#   ordinal:使用序數編碼(0,1,2……)。
#strategy:分箱的方式。分為:uniform,quantile,kmeans。
#uniform:每個區間的長度范圍大致相同。
#quantile:每個區間包含的元素個數大致相同。
#kmeans:使用一維kmeans方式進行分箱。


#對數據進行分箱操作
k=KBinsDiscretizer(n_bins=[4, 5, 10, 6],
                     encode="onehot-dense", 
                     strategy="uniform")
#定義離散化的特征。
discretize=["Longitude", "Temperature", "Precipitation", "Latitude"]
#訓練集數據轉換為DataFrame
X_train_eli=pd.DataFrame(data=X_train_eli, columns=X.columns[rfecv.support_])
#測試集數據轉換為DataFrame
X_test_eli=pd.DataFrame(data=X_test_eli, columns=X.columns[rfecv.support_])
#應用到訓練集
r=k.fit_transform(X_train_eli[discretize])
r=pd.DataFrame(r, index=X_train_eli.index)
#獲取除離散化特征之外的其他特征。
X_train_dis=X_train_eli.drop(discretize, axis=1)
#將離散化后的特征與其他特征進行重新組合。
X_train_dis=pd.concat([X_train_dis, r], axis=1)
#對測試集進行同樣的離散化操作。
r=pd.DataFrame(k.transform(X_test_eli[discretize]), index=X_test_eli.index)
X_test_dis=X_test_eli.drop(discretize, axis=1)
X_test_dis=pd.concat([X_test_dis, r], axis=1)
#查看轉換之后的格式。
display(X_train_dis.head()

圖片

#訓練模型
lr.fit(X_train_dis, y_train)
#去除異常值后評估模型效果
print(lr.score(X_train_dis, y_train))
print(lr.score(X_test_dis, y_test))


結論:離散化后模型效果進一步提升

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 環境
    +關注

    關注

    0

    文章

    125

    瀏覽量

    16230
  • 空氣質量
    +關注

    關注

    0

    文章

    37

    瀏覽量

    8315
收藏 人收藏

    評論

    相關推薦

    經濟預測模型

    該資料是由幾篇論文和一個講義組成,具體講解了回歸分析預測、時間序列預測、宏觀計量經濟模型
    發表于 08-15 10:47

    CCD圖像分析方法和預測算法???

    CCD圖像分析方法和預測算法???
    發表于 07-01 15:20

    零售數據分析之銷售預測一:我們圖的到底是什么?

    一個目標,定一個參考,當實際與預測差異較大時,我們可以去尋找并分析原因;2、作為標準,結合庫存,作為補貨的參考。在剛才的實踐中,我們會發現預測的偏差率還是比較大的,那為什么呢?因為我們
    發表于 09-08 14:23

    PCB產業投資預測分析

    PCB產業投資預測分析   PCB企業利潤對產品價格非常敏感,
    發表于 12-31 08:50 ?788次閱讀

    數據預測分析方法

    數據預測分析方法,有需要的朋友下來看看。
    發表于 01-15 15:07 ?0次下載

    微型空氣質量監測儀【恒美儀器HM-AQI】解決方案

    微型空氣質量監測儀【恒美儀器HM-AQI】是根據十三五及各地大氣污染監測治理政策生產的新型空氣質量在線多參數監測系統,微型空氣質量監測儀【恒美儀器HM-AQI】嚴格按照國家標準對四氣(CO、SO2、NO
    發表于 05-19 10:20 ?715次閱讀

    MAX6921AQI+ PMIC - 顯示驅動器

    電子發燒友網為你提供Maxim(Maxim)MAX6921AQI+相關產品參數、數據手冊,更有MAX6921AQI+的引腳圖、接線圖、封裝手冊、中文資料、英文資料,MAX6921AQI+真值表,MAX6921
    發表于 02-10 20:04
    MAX6921<b class='flag-5'>AQI</b>+ PMIC - 顯示驅動器

    MAX6921AQI+T PMIC - 顯示驅動器

    電子發燒友網為你提供Maxim(Maxim)MAX6921AQI+T相關產品參數、數據手冊,更有MAX6921AQI+T的引腳圖、接線圖、封裝手冊、中文資料、英文資料,MAX6921AQI+T真值表,MAX6921
    發表于 02-10 20:14
    MAX6921<b class='flag-5'>AQI</b>+T PMIC - 顯示驅動器

    AQI分析預測-1

    AQI(air Quality Index)指空氣質量指數,用來衡量空氣清潔或者污染程度。值 越小,表示空氣質量越好。近年來因為環境問題,空氣質量越來越受到人們重視。
    的頭像 發表于 02-23 16:28 ?1151次閱讀
    <b class='flag-5'>AQI</b><b class='flag-5'>分析</b>與<b class='flag-5'>預測</b>-1

    如何改善AQI空氣質量監測站的狀況-歐森杰

    隨著大氣污染的日益嚴重,AQI空氣質量監測站的狀況也日趨惡化。本文將從硬件、軟件、人員等多個角度,給出具體的建議,改善AQI空氣質量監測站的狀況。 一、硬件方面 1.1、AQI空氣質量監測站的設備
    的頭像 發表于 05-26 16:01 ?710次閱讀

    預測分析介紹及行業應用案例

    汽車制造商 1、預測需求和預測供應商績效 問題:一家汽車制造商希望預測需求、優化庫存水平并預測供應商績效。 目標:提高效率并改進供應鏈管理。 解決方案:通過
    的頭像 發表于 05-30 14:08 ?527次閱讀

    AQI空氣質量監測站的重要性-歐森杰

    隨著交通工具的發展,工業化的進步,空氣污染問題日益突出,因此,AQI空氣質量監測站的重要性也不容忽視。 一、AQI空氣質量監測站的定義 AQI空氣質量監測站是指建立在城市或者大中城市等地區,用于定期
    的頭像 發表于 06-19 14:27 ?706次閱讀

    AQI空氣質量監測站——保護空氣質量的重要一環

    空氣污染,是當今社會最嚴重的環境問題之一,也是人們最關心的環境問題。為了保護空氣質量,AQI空氣質量監測站至關重要。 一、AQI空氣質量監測站的定義 AQI(Air Quality Index
    的頭像 發表于 07-18 14:43 ?2624次閱讀

    電磁軌跡預測分析系統

    智慧華盛恒輝電磁軌跡預測分析系統是一個專門用于預測分析電磁運動軌跡的系統。該系統結合了電磁學、運動學、數據分析以及可能的人工智能或機器學習
    的頭像 發表于 06-25 15:19 ?436次閱讀

    電磁軌跡預測分析系統設計方案

    智慧華盛恒輝電磁軌跡預測分析系統的設計方案是一個綜合性的項目,它結合了電磁學、運動學、數據分析以及可能的人工智能或機器學習技術,以實現對電磁運動軌跡的精確預測和深入
    的頭像 發表于 07-15 16:22 ?431次閱讀
    主站蜘蛛池模板: xxnx日本| 久久亚洲国产中文字幕 | 亚洲AV永久无码精品老司机蜜桃 | 国产成人 免费观看 | 99久久国产露脸精品国产麻豆 | 日韩一卡二卡三卡四卡免费观在线 | 国产成人精品在视频 | 亚洲偷偷自拍免费视频在线 | 国产精品资源网站在线观看 | a亚洲在线观看不卡高清 | 果冻传媒在线观看高清完整免费 | 久久成人a毛片免费观看网站 | 国精产品999一区二区三区有限 | 我把寡妇日出水好爽 | 激情A片久久久久久久 | 亚洲免费综合色视频 | 亚洲精品成人AV在线观看爽翻 | 国产精品久久久久无码AV色戒 | 国产手机在线亚洲精品观看 | 人妻插B视频一区二区三区 人妻 中文无码 中出 | 污文啊好棒棒啊好了 | 激情丛林电影完整在线 | 无遮挡h肉3d动漫在线观看 | 秋葵app秋葵官网18在线观看 | 欧美精品v欧洲高清 | 火影小南被爆羞羞网站 | 国产热久久精 | 国产三级精品三级男人的天堂 | 99久久精品免费精品国产 | 久久国产亚洲电影天堂 | 99久久久无码国产精品AAA | 日韩在线中文字幕无码 | 久久99国产精品一区二区 | 午夜小视频免费观看 | 色拍拍噜噜噜啦啦新网站 | 青柠电影在线看 | 亚洲香蕉网久久综合影院 | 国产成人无码精品久久久免费69 | 免费在线看视频 | 天美传媒在线观看完整高清 | 日本伦理片 中文字幕 |