您好,登錄后才能下訂單哦!
TensorFlow中的自回歸模型是怎樣的,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
關于自回歸模型真正酷的一點是它們類似于開環反饋系統,一種控制系統。這些模型的目標函數埋藏在一些沉重的,幾乎荒謬的數學之下,但我終于找到了通過搜索維基百科來構建自回歸模型的技巧。通過以下操作可以在下面的等式中總結技巧:將(1)插入(2)以創建表達式(3)。這種轉換的結果將截距限制為自回歸權重的一定比例。可以使用TensorFlow優化此目標函數。請在此處查看此帖子的筆記本。
下面的代碼塊顯示了如何在此模型的TensorFlow中組合權重和數據。將數據整形為(N,M)輸入和輸出組合的元組,并將觀察結果分成訓練和測試數據集。訓練數據集被洗牌。在每個時期使用隨機微型批次,其中50%的訓練觀察結果。使用具有非常小的學習速率的梯度下降優化器來防止過度擬合。
hidden_layer_1 = 1
weights1 = tf.Variable(tf.random_normal((X_train.shape[1],hidden_layer_1),stddev=0.01,dtype='float32'))
b1 = tf.Variable(tf.zeros((1,hidden_layer_1),dtype='float32'))
input_X = tf.placeholder('float32',(None,X_train.shape[1]))
input_y = tf.placeholder('float32',(None,1))
predicted_out = tf.add(tf.matmul(input_X,weights1),tf.reduce_sum(b1*weights1))
loss = tf.reduce_sum(tf.square(predicted_out-input_y))
optimizer = tf.train.AdamOptimizer(learning_rate=0.00001).minimize(loss)
使用澳大利亞墨爾本時間序列中的每日最低溫度建立自回歸模型。該時間序列數據不需要太多預處理,即僅內插nan值。清潔數據集總共有~3500個觀測值,其中80%用于訓練。
下面顯示的自動相關圖是通過采用numpy的相關函數創建的,通過采用相關的后半部分。然后使用scipy的signal.detrend函數去除結果。以下圖表具有以下滯后的峰值:[170,356,528,720,897,1079,1257,1455,1622]。通過從平均相關性中獲取至少兩個標準偏差來提取最強的相關性。在下圖中,強相關滯后可以看到綠色。
輸入數據被子集化以包括排除弱相關滯后。這通過僅選擇高度相關的滯后變量來改善輸入數據的質量。這些高度相關的滯后觀測值被提取為每個目標觀測的矩陣。
Snowballed Autoregressive Time Series
當需要提前一段時間做出決定時,時間序列的預測可能更為可取。可以通過對自回歸模型中的“滾雪球”預測來創建預測。即使實際時間序列具有恒定的方差,滾雪球時間序列的方差也會隨著時間的推移而增加。不合適的模型可能會變得不穩定,并且隨著時間的推移會出現變化。然而,這種增加的方差通常是因為滾雪球的時間序列高于或低于時間序列的實際趨勢。這似乎是使用開環系統的人為因素,而不是關閉用于電氣控制系統的系統。為了測試趨勢分量方向的隨機性,用1000個小批量訓練模型。模型結果保存了最后900個時期,并為每個時期生成了一個滾雪球時間序列。
按時間劃分的滾雪球時間序列如上圖所示。通過檢查每個滾雪球時間序列的平均誤差是高于還是低于零來測試趨勢的隨機性。在過去的900,600和300個時期,積極趨勢的滾雪球時間序列大約是負面趨勢的兩倍。按時間劃分的平均誤差分布如下圖所示。
平均值似乎以1為中心,這意味著大多數滾雪球時間序列都過度預測了實際值。分布似乎也略微傾斜。然而,事實證明,對于中等范圍的預測,雪球效應并不大。噪聲問題的一種可能解決方案是將滾雪球預測中的N平均值。
最后的N個滯后分量被用作自回歸模型中的預測因子。當平均整合過去30個時期的最后30個模型時,解釋了大約51%的測試數據變化。上面的第二個圖顯示了與滾雪球時間序列的平均值的標準偏差的r平方。我們可以看到,對于正標準偏差(+ 1,+ 2,+ 3),負平方(-1,-2,-3)的r平方稍微多一點,這表明該模型可能過度預測。
實際觀測預測
我們可以預測下一個時間步,而不是預測,給出測試數據集中每個觀測值的最后N個值。預測的時間序列如下所示。當平均整合來自TensorFlow優化器的最后30個時期時,解釋了測試數據變化的大約58%,比滾雪球預測多7%。有趣的是,“平均值與標準偏差的平均值”表明該模型可能過度預測。
看完上述內容,你們掌握TensorFlow中的自回歸模型是怎樣的的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。