iT邦幫忙

2023 iThome 鐵人賽

DAY 25
1

續上一篇機器學習 挑戰 - Day 3
我們今天要詳細研究一下如何套用 tensorflow.keras.models的LSTM 來預測BTC的價格。

在應用tensorflow之前,首先我想要先了解一下tensorflow這模塊。

什麼是Tensorflow?
Tensorflow是一種開源的機器學習框架,以強大的深度神經網絡為特點。它由Google於2015年開發,最常與Python一起使用。
你還可以使用Tensorflow進行數據處理、可視化、模型評估和部署。

什麼是Tensorflow.keras?
這是Tensorflow提供的面向初學者的API。它具有一個順序API,可以逐層構建神經網絡(tf.keras.layers.Layer)。你還可以使用這些層來處理數據預處理任務,如歸一化和文本向量化。

https://ithelp.ithome.com.tw/upload/images/20231009/20162091ASf1I8d0ba.jpg

什麼是順序模型?
順序模型是一個簡單的層疊模型,其中每個層都有確切的1個輸入張量和1個輸出張量。在預測中,只有1個變數(即y)與1組輸入(即x),順序模型非常適合。

# Define Sequential model with 3 layers
model = keras.Sequential(
    [
        layers.Dense(2, activation="relu", name="layer1"),
        layers.Dense(3, activation="relu", name="layer2"),
        layers.Dense(4, name="layer3"),
    ]
)
# Call model on a test input
x = tf.ones((3, 3))
y = model(x)

第一層 - 將輸入轉換為1維數組的展平層。
第二層 - 具有128個連接節點的dense層,可以同時執行線性回歸並微調預測以達到準確性。它使用稱為"relu"的整流線性激活函數。可以通過超參數自定義此層的輸出。
第三層3 - 輸出層(也是dense)。

使用內置function訓練模型
在model.compile()中使用的訓練選項:

優化器(Optimizer):優化器指導和幫助網絡達到可能的最低損失,使預測輸出更準確。
在我的項目中,我想嘗試使用AdamW。

損失(Loss):即損失是一個數字,表示模型對單個示例的預測有多糟糕。如果模型的預測完美,損失為零;否則,損失較大。

在我的project中我想試試用Mean Squared Logarithmic Error 或 mean squared error.

我會在下一章開始套用以上的模塊。

Ref: https://www.tensorflow.org/learn


對 dbt 或 data 有興趣?歡迎加入 dbt community 到 #local-taipei 找我們,也有實體 Meetup 請到 dbt Taipei Meetup 報名參加
Ref:

https://levelup.gitconnected.com/20-pandas-functions-for-80-of-your-data-science-tasks-b610c8bfe63c


上一篇
機器學習 挑戰 - Day 3
下一篇
機器學習 挑戰 - Day 5
系列文
資料分析的硬體以及軟體學習以及成長心得30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言