【机器学习PAI实践三】雾霾成因分析
一、背景
如果要人們評選當今最受關注話題的top10榜單,霧霾一定能夠入選。如今走在北京街頭,隨處可見帶著厚厚口罩的人在埋頭前行,霧霾天氣不光影響了人們的出行和娛樂,對于人們的健康也有很大危害。本文通過爬取并分析北京一年來的真實天氣數據,挖掘出二氧化氮是跟霧霾天氣(這里指的是PM2.5)相關性最強的污染物,從而為您揭秘形成霧霾的罪魁禍首。
這里我們是用阿里云機器學習平臺來完成實驗:
https://data.aliyun.com/product/learn
登陸阿里云機器學習平臺,即可在demo頁選擇實驗并且親手實現整個機器學習的預測分析,完全零門檻。
二、數據集介紹
數據源:采集了2016全年的北京天氣指標。
采集的是從2016年1月1號以來每個小時的空氣指標,。具體字段如下表:
| time | 日期,精確到天 | string |
| hour | 表示的是時間,第幾小時的數據 | string |
| pm2 | pm2.5的指標 | string |
| pm10 | pm10的指標 | string |
| so2 | 二氧化硫的指標 | string |
| co | 一氧化碳的指標 | string |
| no2 | 二氧化氮的指標 | string |
三、數據探索流程
阿里云機器學習平臺采用拖拉算法組件拼接實驗的操作方式,先來看下整個實驗流程:
我們把整個實驗拆解成四個部分,分別是數據導入及預處理、統計分析、隨機森林預測及分析、邏輯回歸預測及分析。下面我們分別介紹一下這四個模塊的邏輯。
1.數據導入及預處理
(1)數據導入
在“數據源”中選擇“新建表”,可以把本地txt文件上傳。
數據導入后查看:
(2)數據預處理
通過類型轉換把string型的數據轉double。把pm2這一列作為目標列,數值超過200的情況作為重度霧霾天氣打標為1,低于200標為0,實現的SQL語句如下。
(3)歸一化
歸一化主要是去除量綱的作用,把不同指標的污染物單位統一。
2.統計分析
我們在統計分析的模塊用了兩個組件:
(1)直方圖
通過直方圖可以可視化的查看不同數據在不同區間下的分布。通過這組數據的可視化展現,我們可以了解到每一個字段數據的分布情況,以PM2.5為例,數值區間出現最多的是11.74~15.61,一共出現了430次。
(2)數據視圖
通過數據視圖可以查看不同指標的不同區間對于結果的影響。
以no2為例,在112.33~113.9這個區間產生了7個目標列為0的目標,產生了9個目標列為1的目標。也就是說當no2為112.33~113.9區間的情況下,出現重度霧霾的天氣的概率是非常大的。熵和基尼系數是表示這個特征區間對于目標值的影響,數值越大影響越大,這個是從信息量層面的影響。
3.隨機森林預測及分析
本案其實是采用了兩種不同的算法對于結果進行預測,我們先來看看隨機森林這一分支。我們通過將數據集拆分,百分之八十的數據訓練模型,百分之二十的數據預測。最終模型的呈現可以可視化的顯示出來,在左邊模型菜單下查看,隨機森林是樹狀模型。
通過這個模型預測結果的準確率:
我們看到AUC是0.99,也就是說如果我們有了本文用到的天氣指標數據,就可以預測天氣是否霧霾,而且準確率可以達到百分之九十以上。
4.邏輯回歸預測及分析
再來看下邏輯回歸這一分支的預測模型,邏輯回歸是線性模型:
模型預測準確率:
邏輯回歸的AUC為0.98,比用隨機森林計算得到的結果略低一點。如果排除調參對于結果的影響因素,可以說明針對這個數據集,隨機森林的訓練效果會更好一點。
四、結果評估
上面介紹了如何通過搭建實驗來搭建針對PM2.5的預測流程,準確率達到百分之九十以上。下面我們來分析一下哪種空氣指標對于PM2.5影響最大,首先來看下邏輯回歸的生成模型:
因為經過歸一化計算的邏輯回歸算法有這樣的特點,模型系數越大表示對于結果的影響越大,系數符號為正號表示正相關,負號表示負相關。我們看一下正號系數里pm10和no2最大。pm10和pm2只是顆粒尺寸大小不同,是一個包含關系,這里不考慮。剩下的no2(二氧化氮)對于pm2.5的影響最大。我們只要查閱一下相關文檔,了解下哪些因素會造成no2的大量排放即可找出影響pm2.5的主要因素。
下面網上是找到的關于no2排放的論述,文中說明了no2主要來自汽車尾氣。no2來源文章
五、其它
參與討論:云棲社區公眾號
免費體驗:阿里云數加機器學習平臺
總結
以上是生活随笔為你收集整理的【机器学习PAI实践三】雾霾成因分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【机器学习PAI实践二】人口普查统计
- 下一篇: 【机器学习PAI实践四】如何实现金融风控