简体   繁体   English

dnn model 中的过拟合

[英]overfitting in dnn model

I have a dataset on which I train a DNN model.我有一个数据集,我在其上训练 DNN model。 my dataset contain 398 samples and 330 features, i redueced features to 39 with ExtraTreeclassifier().我的数据集包含 398 个样本和 330 个特征,我使用 ExtraTreeclassifier() 将特征减少到 39 个。 this my model:这是我的 model:

X_train, X_test, y_train, y_test = train_test_split(xfinal, val_y, test_size = 0.2, random_state = 0)
model=Sequential()
model.add(Dense(units=20, kernel_initializer='uniform', activation='relu',input_dim=nb_features))
model.add(Dense(units=20, kernel_initializer='uniform', activation='relu'))
model.add(Dense(units=10, kernel_initializer='uniform', activation='relu'))
model.add(Dense(units=5, kernel_initializer='uniform', activation='relu'))
model.add(Dense(units=1,kernel_initializer='uniform',activation='sigmoid'))
model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['accuracy'])
history = model.fit(X_train,y_train,validation_data=(X_test,y_test),batch_size=32,epochs=250)

I tried Dropout but my model steel overfitting:我尝试了 Dropout,但我的 model 钢过拟合: 在此处输入图像描述

Any solution for my model?我的 model 有什么解决方案吗?

You can add Dropout layer between Dense layers like below.您可以在Dense层之间添加Dropout层,如下所示。

model.add(Dropout(0.2))

Also you can remove one or more hidden layers from your architecture.您还可以从架构中删除一个或多个隐藏层。

One more thing is, you can use Earlystopping method to stop at correct epoch number.还有一件事是,您可以使用Earlystopping方法在正确的纪元处停止。

Your final model architecture can be like below:您最终的 model 架构可能如下所示:

callbacks = [EarlyStopping(monitor='val_loss', patience=5)]
model=Sequential()
model.add(Dense(units=20, kernel_initializer='uniform', activation='relu',input_dim=nb_features))
model.add(Dropout(0.2))
model.add(Dense(units=5, kernel_initializer='uniform', activation='relu'))
model.add(Dense(units=1,kernel_initializer='uniform',activation='sigmoid'))
model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['accuracy'])
history = model.fit(X_train,y_train,validation_data=(X_test,y_test),batch_size=32,epochs=250, callbacks=callbacks)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM