1 回答

TA貢獻2019條經驗 獲得超9個贊
對于初學者:
您處于回歸設置中,其中準確性毫無意義(它僅用于分類問題)。從模型編譯中刪除,不要為此煩惱 - 您應該使用與損失相同的數量(此處為MSE)來評估模型的性能。
metrics=['accuracy']
出于同樣的原因(回歸問題),您不應該對最后一個圖層使用激活,而應該對最后一個圖層使用激活(離開,就像執行該工作一樣,因為這是 Keras 圖層的默認激活)。
sigmoid
linear
Dense(1)
linear
具有線性激活的中間層(如您在這里的中間層)每個都只是一個單節點線性層(即幾乎沒有);向所有中間層添加激活(就像對第一層所做的那樣)。
relu
總而言之,這是實驗的起點:
model = tf.keras.Sequential()
model.add(layers.Dense(64, activation='relu', input_shape=(numInputColumns,)))
model.add(layers.Dense(128, activation='relu'))
model.add(layers.Dense(128, activation='relu'))
model.add(layers.Dense(128, activation='relu'))
model.add(layers.Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
當你完成這一部分時,你最終會得出一個不幸的結論,即與分類問題相反,我們可以立即說準確性是否“好”,“不夠好”,“壞”等,回歸問題的性能指標,如MSE,不會讓自己進入如此簡單的評估;更糟糕的是,您的 MSE 是根據您縮放的數據計算的。閱讀我的答案 如何在Keras Regressor中解釋MSE 了解如何計算初始未縮放數據中的MSE,獲取其平方根,從而能夠以原始數據的單位進行比較,以查看它是否適合您的情況(ML教程中通常省略的一部分)...y
添加回答
舉報