您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何使用Facebook的Prophet來預測空氣質量,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
對于許多機器學習工程師來說,制作高質量的預測很難。它需要大量的經驗和非常具體的技能。此外,其他預測工具太不靈活,無法納入有用的假設。
出于這些原因,Facebook開源Prophet,這是Python和R中提供的預測工具。該工具允許專家和非專家以最小的努力生成高質量的預測。
在這里,將使用Prophet來幫助我們預測空氣質量!
導入并清理數據
與往常一樣,首先導入一些有用的庫:
然后導入數據集并預覽它:
你應該看到以下內容:
數據集的前五個條目
如您所見,數據集包含有關不同氣體濃度的信息。每天每小時記錄一次。您可以在此處找到所有功能的說明。
https://www.kaggle.com/sayakchakraborty/air-quality-prediction-of-relative-humidity
如果更多地瀏覽數據集,會注意到有許多值為-200的實例。當然,負面集中是沒有意義的,因此需要在建模之前清理數據。
首先,擺脫存在空值的所有實例:
之后,需要將日期列解析為日期,并將所有測量值轉換為浮點數:
然后,通過取每個測量的平均值來按天匯總數據:
此時,數據應如下所示:
還有一些需要擺脫的NaN。可以看到每列中有多少NaN:
擺脫超過8 NaN的列:
完善!現在應該按周匯總數據,因為它會給出更平滑的分析趨勢。
真棒!現在準備更多地探索數據了。
探索性數據分析(EDA)
繪制數據集的每一列:
花點時間查看每個情節并確定有趣的趨勢。為了長度只考慮NOx的濃度。
氮的氧化物是非常有害的,因為它們反應形成煙霧和酸雨,并且負責形成細顆粒和地面臭氧。這些對健康有不利影響,因此NOx的濃度是空氣質量的關鍵特征。
因此在繼續建模之前,刪除所有不相關的列:
Modelling
首先導入Prophet:
然后,Prophet要求將date列命名為ds,將要素列命名為y:
現在,數據應該是這樣的:
然后,定義一個訓練集。為此將保留最后30個用于預測和驗證的條目。
然后,簡單地初始化Prophet,使模型適合數據,并進行預測!
應該看到以下內容:
這里,yhat表示預測,而yhat_lower和yhat_upper分別表示預測的下限和上限。
Prophet允許輕松繪制預測:
得到:
NOx濃度預測
如您所見,Prophet只是使用直線向下線來預測未來的NOx濃度。
您還可以使用命令查看時間序列是否具有任何有趣的功能,例如季節性:
得到:
在這里,Prophet只發現了一個沒有季節性的下降趨勢。
現在,通過計算模型的平均絕對百分誤差(MAPE)和平均絕對誤差(MAE)來評估模型的性能:
應該看到MAPE是13.86%而MAE是109.32,這并不是那么糟糕!請記住根本沒有對模型進行微調。
最后,用它的上限和下限繪制預測:
得到:
預測每周平均NOx濃度
關于如何使用Facebook的Prophet來預測空氣質量就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。