[英]AI - Learn the best combination
總參數:48K
輸入 X:
array([[ 1964, 12, 32772, ..., 0, 6176, 0],
[ 1964, 12, 32772, ..., 0, 6841, 0],
[ 1964, 28, 32772, ..., 0, 6176, 0],
...,
[ 7400, 20, 41565, ..., 0, 8149, 0],
[ 7400, 20, 41565, ..., 0, 8151, 0],
[ 7400, 20, 41565, ..., 0, 8150, 0]], dtype=int32)
Output 年:
array([0., 0., 0., ..., 1., 0., 0.])
Model結構:
model = Sequential()
model.add(BatchNormalization(input_shape=(7,)))
model.add(Dense(32, activation="relu"))
model.add(Dense(32, activation="relu"))
model.add(Dense(64, activation="relu"))
model.add(Dense(32, activation="relu"))
model.add(Dense(32, activation="relu"))
model.add(Dense(16, activation="relu"))
model.add(Dense(1, activation=None))
在第一個輸入層中,我使用批量歸一化,我的 acc 從 50 增加到 73,我的意思是這是一個很好的解決方案..
Model編譯
model.compile(loss='binary_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
我也嘗試“亞當”和同樣的結果。
Model 適合:
history = model.fit(x_train, y_train, batch_size=2048, validation_data=(x_test, y_test), epochs=1000)
我也嘗試了更多組合,使用 epochs=30000 和批量大小 1024 並獲得 acc 78.51。
我還嘗試將每一層加倍,節點* 2:
我有 16k 和 output 1,所以通過這個解決方案我得到 6k 校正預測。 @ epochs=30000 批量大小為 1024,優化器 adam @
Model結構:
model = Sequential()
model.add(BatchNormalization(input_shape=(7,)))
model.add(Dense(64, activation="relu"))
model.add(Dense(64, activation="relu"))
model.add(Dense(128, activation="relu"))
model.add(Dense(32, activation="relu"))
model.add(Dense(1, activation='sigmoid'))
我的簡單問題是如何增加 acc 以獲得更正確的預測?
如果橙色是您的驗證損失/准確性,則說明您過度擬合。 准確率幾乎不會隨着 epoch 數的增加而降低,而驗證損失會增加。 想一想
你使用了很多隱藏層,一開始就減少它們。 我更喜歡從小型網絡開始,甚至像邏輯回歸或簡單的線性 model,然后看看神經網絡是否提高了性能。
考慮使用與 neural.networks 不同的方法,例如 CART 方法(例如 XGBOOST)已被證明在小特征尺寸(例如此處 7)的問題上優於 neural.networks。
希望對進一步探究問題有所幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.