亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Keras 模型產生相同的輸出

Keras 模型產生相同的輸出

Go
喵喔喔 2022-06-02 14:39:33
我見過幾個有類似問題的問題,但沒有一個能解決我的問題。我正在嘗試將 Keras 中的神經網絡擬合到具有 22 個輸入特征的數據集以進行二進制分類。問題是我只有 195 個訓練樣本。我知道這是一個小數據集,但我不知道是否有可能以合理的準確度擬合模型(我的目標是> 95%的準確度)。我遇到的問題是我的模型只輸出 1 并獲得 75% 的準確率,因為我的數據集是 75% 的正例。這是我的代碼:data = pd.read_csv("") #filename omitted, but it loads properlyscaler = MinMaxScaler()X = scaler.fit_transform(X)Y = data['status']X = data.drop(['status', 'name'], axis = 1)xTrain, xTest, yTrain, yTest = train_test_split(X, Y, train_size = 0.8)model = Sequential()model.add(Dense(48, input_shape=(22,), activation = 'relu'))model.add(Dropout(0.5))model.add(Dense(1, activation = 'softmax'))optim = keras.optimizers.adam(lr=0.0001)model.compile(optimizer = optim, loss = 'binary_crossentropy', metrics = ['accuracy'])model.fit(xTrain, yTrain, epochs = 20, batch_size = 5, validation_data = (xTest, yTest))我嘗試添加更多隱藏層,增加訓練 epoch 的數量,并增加和降低優化器的學習率,但準確度保持不變。這是數據集的鏈接:https ://www.dropbox.com/s/c4td650b4z7aizc/fixed.xlsx?dl=0
查看完整描述

1 回答

?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

您需要嘗試一些事情以獲得更好的準確性:

  1. 不要簡單地將數據集原樣輸入到 NN 中。做一些數據準備,比如平衡響應類。請查看各種采樣技術,例如欠采樣、過采樣、SMOTE 等。如果您的數據集具有平衡的類分布,則可以很好地提高準確性。

  2. 而不是 activation = 'softmax',您應該使用sigmoid激活函數。

除了這些,您應該嘗試其他幾種架構,lr 值,不。epochs、batch_size、優化器等


查看完整回答
反對 回復 2022-06-02
  • 1 回答
  • 0 關注
  • 209 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號