[英]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.