首页
/
每日頭條
/
生活
/
ai對元宇宙的重要性
ai對元宇宙的重要性
更新时间:2024-11-11 17:57:43

ai對元宇宙的重要性(用AI預測北京霧霾)1

圖:pixabay

原文來源:machine learning mastery

作者:Jason Brownlee

「機器人圈」編譯:多啦A亮

神經網絡諸如長短期記憶(LSTM)循環神經網絡(RNN)能夠幾乎無縫地模拟多個輸入變量的問題。

這是時間序列預測中的一大優點,而經典線性方法難以适應多變量或多輸入預測問題。

在本教程中,你将發現如何在Keras深度學習庫中開發多變量時間序列預測的LSTM模型。

完成本教程後,你将知道:

•如何将原始數據集轉換為可用于時間序列預測的内容。

•如何準備數據并适應多變量時間序列預測問題的LSTM。

•如何做出預測并将結果重新調整到原始單位。

第一步是将日期時間信息整合到一個單獨的日期時間,以便我們可以将其用作Pandas的索引。

快速檢查顯示前24小時pm2.5的NA值。 因此,我們需要删除第一行數據,在數據集中還有幾個分散的“NA”值; 我們現在可以用0值标記它們。

以下腳本加載原始數據集,并将日期時間信息解析為Pandas DataFrame索引。No列被删除,然後為每列指定更清晰的名稱。最後,将NA值替換為“0”值,并删除前24小時。

ai對元宇宙的重要性(用AI預測北京霧霾)2

運行該示例打印轉換後數據集的前5行,并将數據集保存到“pollution.csv”。

ai對元宇宙的重要性(用AI預測北京霧霾)3

現在我們以簡單易用的形式提供數據,我們可以創建每個系列的快速圖,來看看我們得到的。

下面的代碼加載了“pollution.csv”文件,并将每個系列作為單獨的子圖繪制,除了風速是分類的。

ai對元宇宙的重要性(用AI預測北京霧霾)4

運行示例創建一個具有7個子圖,顯示每個變量的5年數據。

ai對元宇宙的重要性(用AI預測北京霧霾)5

空氣污染時間序列線圖

多變量LSTM預測模型

在本節中,我們将使用LSTM解決問題。

LSTM數據準備

第一步是為LSTM準備污染數據集。

這涉及将數據集視為監督學習問題并對輸入變量進行歸一化。

考慮到上一個時間段的污染測量和天氣條件,我們将把監督學習問題作為預測當前時刻(t)的污染情況。

這個構想是直接的,隻是為了這個演示。你可以探索的一些替代方法包括:

•根據過去24小時的天氣和污染情況,預測下一個小時的污染。

•預測下一個小時的污染,并給予下一個小時的“預期”天氣條件。

我們可以使用在下列文章中開發的series_to_supervised()函數來轉換數據集:

•如何将時間序列轉換為Python中的監督學習問題。

首先,加載“pollution.csv”數據集。風速特征是标簽編碼(整數編碼)。如果你有興趣探索,這可能會在将來進一步被熱編碼。

其次,所有功能都被歸一化,然後将數據集轉換為監督學習問題。然後删除要預測的小時的天氣變量(t)。

完整的代碼清單如下:

ai對元宇宙的重要性(用AI預測北京霧霾)6

運行示例打印轉換後的數據集的前5行。我們可以看到8個輸入變量(輸入序列)和1個輸出變量(當前小時的污染水平)。

ai對元宇宙的重要性(用AI預測北京霧霾)7

這個數據準備很簡單,我們可以探索更多的東西。你可以看到的一些想法包括:

•獨熱編碼風速。

•通過差分和季節性調整使所有系列固定。

•提供超過1小時的輸入時間步長。

最後一點可能是最重要的,因為在學習序列預測問題時,LSTMs通過時間使用反向傳播。

定義和拟合模型

在本節中,我們使用多變量輸入數據的LSTM。

首先,我們必須将準備好的數據集分成訓練集和測試集。為了加快對這次示範的訓練速度,我們将僅适用于數據第一年的模型,然後對其餘4年的數據進行評估。如果你有時間,請考慮浏覽此測試工具的倒置版本。

下面的示例将數據集分成訓練集和測試集,然後将訓練集和測試集分成輸入和輸出變量。 最後,将輸入(X)重構為LSTM預期的3D格式,即[樣本,時間步長,特征。

ai對元宇宙的重要性(用AI預測北京霧霾)8

運行此示例打印訓練集的形狀,并測試輸入和輸出集合約9000小時的數據進行訓練,約35000小時的數據進行測試。

ai對元宇宙的重要性(用AI預測北京霧霾)9

現在我們可以定義并配置LSTM模型

我們将在第一個隐藏層中定義具有50個神經元的LSTM以及輸出層中用于預測污染的的1個神經元。輸入形式将是一個時間具有8個特征的步長,。

我們将使用平均絕對誤差(MAE)損失函數和随機梯度下降的高效Adam版本。

該模型将配置為适用于50個批量大小為72的訓練周期。請記住,每個批處理結束時,Keras中的LSTM的内部狀态都将重置,因此一個内部狀态是一個有關大量天數的函數将會有所幫助。(不妨試一試)。

最後,我們通過在fit()函數中設置validation_data參數來跟蹤訓練過程中的訓練和測試損失,然後在運行結束時,繪制訓練和測試損失曲線圖。

ai對元宇宙的重要性(用AI預測北京霧霾)10

評估模型

當模型配置好之後,我們可以對整個測試數據集進行預測。

我們将預測與測試數據集相結合,并進行反縮放,我們還用預期的污染數據對測試數據集進行反縮放。

以預測值和實際值為原始尺度,我們可以計算模型的誤差值。在這種情況下,我們計算出在與變量本身相同的單位中産生誤差的均方根誤差(RMSE)。

ai對元宇宙的重要性(用AI預測北京霧霾)11

完整示例

完整的示例如下所示:

ai對元宇宙的重要性(用AI預測北京霧霾)12

想要運行示例的話,首先需要創建一個繪圖,顯示訓練期間的訓練和測試損失。

有趣的是,我們可以看到測試損失低于訓練損失。該模型可能過度拟合訓練數據。在訓練過程中測量和繪制RMSE曲線可能會使這一點顯現得更加明顯。

ai對元宇宙的重要性(用AI預測北京霧霾)13

訓練期間多元LSTM的訓練集和測試線路圖

訓練和測試損失在每個訓練時期結束時都會打印出來。在運行結束時,打印測試數據集上模型的最終RMSE。

我們可以看到,該模型實現了3.836的可觀RMSE,這顯著低于用持續模型發現的30 RMSE。

ai對元宇宙的重要性(用AI預測北京霧霾)14

進一步閱讀

如果你想進一步深入了解,本部分将提供更多關于該主題的資源。

•在UCI機器學習庫中的北京PM2.5數據集。

•Keras長短期記憶模型的5步生命周期。

•使用Python中的長短期記憶模型進行時間序列預測。

•用Python中的長短期記憶模型進行多步時間序列預測。

總結

在本教程中,你發現了如何将LSTM适用于多變量時間序列預測問題。

具體來說,通過本教程你将學到:

•如何将原始數據集轉換為可用于時間序列預測的内容。

•如何準備數據并配置用于多變量時間序列預測問題的LSTM。

•如何做出預測并将結果重新調整到原始單元中。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
Copyright 2023-2024 - www.tftnews.com All Rights Reserved