【发布时间】:2021-02-28 03:15:25
【问题描述】:
我正在使用 tensorflow 和 keras 来解决二元分类问题。
我只有 121 个样本,但有 20.000 个特征。我知道它的样本太少,特征太多,但这是一个生物学问题(基因表达数据),所以我必须处理它。
我的问题:为什么准确率(训练和测试)上升到 100%,然后下降,然后又上升。但是损失一直在减少?
准确度图:
验证图:
由于我的数据集只有 118 个大样本,我只有 24 个测试数据点。见confusion matrix:
这是我的神经网络架构:
使用当前设置: {'ann__dropout_rate':0.4,'ann__learning_rate':0.01,'ann__n_neurons':16,'ann__num_hidden':1,'ann__regularization_rate':0.6}
model = Sequential()
model.add(Dense(input_shape, activation="relu",
input_dim=input_shape)) # First Layer
model.add(Dense(n_neurons, activation="relu",
kernel_regularizer=tf.keras.regularizers.l1(regularization_rate)))
model.add(Dropout(dropout_rate))
model.add(Dense(1, activation="sigmoid"))
optimizer = keras.optimizers.Adam(learning_rate=learning_rate)
model.compile(loss="binary_crossentropy",
optimizer=optimizer, metrics=['accuracy'])
return model
谢谢!
【问题讨论】:
-
只有几个样本 1000 个 epoch?你疯狂地过度拟合这些数据
-
我知道。这就像一个测试,因为我想知道为什么准确性再次下降但损失仍在下降。 (也实施了 EarlyStopping)
标签: python tensorflow floating-accuracy