本文通過分析北京一年的真實天氣數據,構建霧霾天氣預測模型,從而挖掘對霧霾天氣(指PM 2.5)影響最大的污染物。
數據集
本實驗為2016年全年(以小時為單位)的北京空氣指標數據,具體字段如下。
字段名 | 類型 | 描述 |
time | STRING | 日期,精確到天。 |
hour | STRING | 第幾小時的數據。 |
pm2 | STRING | PM 2.5指標。 |
pm10 | STRING | PM 10指標。 |
so2 | STRING | 二氧化硫指標。 |
co | STRING | 一氧化碳指標。 |
no2 | STRING | 二氧化氮指標。 |
霧霾天氣預測
進入PAI-Designer頁面。
登錄PAI控制臺。
在左側導航欄單擊工作空間列表,在工作空間列表頁面中單擊待操作的工作空間名稱,進入對應工作空間內。
在工作空間頁面的左側導航欄選擇 ,進入Designer頁面。
構建工作流。
在PAI-Designer頁面,單擊預置模板頁簽。
在模板列表的霧霾天氣預測區域,單擊創建。
在新建工作流對話框,配置參數(可以全部使用默認參數)。
其中:工作流數據存儲配置為OSS Bucket路徑,用于存儲工作流運行中產出的臨時數據和模型。
單擊確定。
您需要等待大約十秒鐘,工作流可以創建成功。
在工作流列表,雙擊霧霾天氣預測工作流,進入工作流。
系統根據預置的模板,自動構建工作流,如下圖所示。
區域
描述
①
數據導入及預處理:
通過讀數據表組件,導入數據源。
通過類型轉換組件,將STRING類型的數據轉換為DOUBLE類型。
通過SQL腳本組件,將目標列轉換為0和1的二值類型。本實驗中,pm2列為目標列。數值大于200的作為重度霧霾天氣,將其標記為1,反之標記為0。SQL語句如下。
select time,hour,(case when pm2>200 then 1 else 0 end),pm10,so2,co,no2 from ${t1};
通過歸一化組件,去除量綱,即將不同指標污染物的單位統一。
②
統計分析:
通過直方圖組件以可視化的方式查看每種污染物的分布情況。
以PM2.5為例,數值出現最多的區間為11.74~15.61,共430次,如下圖所示。
通過數據視圖組件以可視化的方式查看每種污染物不同區間對于結果的影響。
以no2為例,在112.33~113.9區間產生了7個目標列為0的目標和9個目標列為1的目標(如下圖所示)。因此,no2在112.33~113.9區間時,出現重度霧霾天氣的概率較高。Entropy和Gini表示該特征區間對于目標值的影響(信息量層面的影響),數值越大影響越大。
③
模型訓練及預測,本實驗分別使用隨機森林和邏輯回歸二分類組件進行模型訓練。
④
模型評估。
運行工作流并查看模型效果。
單擊畫布上方的運行。
工作流運行結束后,右鍵單擊畫布中隨機森林下游的二分類評估,在快捷菜單,單擊可視化分析。
在二分類評估對話框,單擊評估圖表頁簽,即可查看隨機森林訓練模型的預測效果。
AUC的取值表示隨機森林組件訓練的霧霾天氣預測模型的準確率達到了99%以上。
右鍵單擊畫布中的邏輯回歸二分類下游的二分類評估,在快捷菜單,單擊可視化分析。
在二分類評估對話框,單擊評估圖表頁簽,即可查看邏輯回歸二分類訓練模型的預測效果。
AUC的取值表示邏輯回歸二分類組件訓練的霧霾天氣預測模型的準確率達到了98%以上。