李宏毅機器學習中文課程作業一:預測PM2.5值

一、作業要求

給定訓練集train.csv,要求根據前9個小時的空氣監測情況預測第10個小時的PM2.5含量。
訓練集介紹:

  1. CSV文件,包含臺灣豐原地區240天的氣象觀測資料(取每個月前20天的數據做訓練集,12月X20天=240天,每月後10天數據用於測試,對學生不可見);
  2. 每天的監測時間點爲0時,1時…到23時,共24個時間節點;
  3. 每天的檢測指標包括CO、NO、PM2.5、PM10等氣體濃度,是否降雨、颳風等氣象信息,共計18項;

二、思路分析及代碼實現

思路分析:

根據作業要求可知,需要用到連續9個時間點的氣象觀測數據,來預測第10個時間點的PM2.5含量。針對每一天來說,其包含的信息維度爲(18,24)(18項指標,24個時間節點)。可以將0到8時的數據截取出來,形成一個維度爲(18,9)的數據幀,作爲訓練數據,將9時的PM2.5含量取出來,作爲該訓練數據對應的label;同理可取1到9時的數據作爲訓練用的數據幀,10時的PM2.5含量作爲label…以此分割,可將每天的信息分割爲15個shape爲(18,9)的數據幀和與之對應的15個label。 訓練集中共包含240天的數據,因此共可獲得240X15=3600個數據幀和與之對應的3600個label。

代碼實現:

具體原理可參考:傳送門

1. 數據預處理
讀入文件,查看文件細目。
在這裏插入圖片描述
保留PM2.5行,去除其他行。
在這裏插入圖片描述
製作traindata和對應的label,並保留爲python文件,方便調用。
在這裏插入圖片描述
2. 訓練
導入保存的數據。
在這裏插入圖片描述
開始利用梯度下降法進行訓練。
在這裏插入圖片描述
看看loss下降曲線,保留模型文件。
在這裏插入圖片描述
3. 預測
加載模型並進行預測。由於該測試集無label信息,故無法進行評估。
在這裏插入圖片描述

三、模型改進的方向

  1. 在從csv文件中提取數據幀和label時,本文以天爲單位,每天分割出15個數據幀和15個label。事實上,時間是連續的,可以將每月的20天首尾連接,再從其中分割數據幀和label,可使數據幀樣本數量大大提升,可能會使模型效果更優。
  2. 在構建模型時,應充分考慮PM2.5與其他大氣成分之間的關係,構建更合理的模型。
  3. 分割訓練集和驗證集時,應該按照比例隨機抽取數據幀作爲訓練集和驗證集,而不是像本文那樣簡單地把前3200個數據樣本作爲訓練集,後400個作爲驗證集。

數據集和代碼見:代碼地址

發佈了27 篇原創文章 · 獲贊 105 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章