从事二进制分类任务,以识别具有 350,000 个标记样本、70 个特征的重复文档。大约有 10:1 的班级不平衡。到目前为止,我表现最好的模型是随机森林,但我想看看是否可以使用深度前馈神经网络来获得更好的结果。
我一直在玩层数和隐藏单元,并使用 5 折交叉验证来验证性能。以下是一种架构的示例:
for train_validation, test_validation in sfk.split(X_train,y_train):
model = Sequential()
model.add(Dense(150, input_dim=X_train.shape[1], activation='relu'))
model.add(Dense(125, activation='relu'))
model.add(Dense(100, activation='relu'))
model.add(Dense(75, activation='relu'))
model.add(Dense(50, activation='relu'))
model.add(Dense(25, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam',metrics=['accuracy'])
model.fit(X_train.iloc[train_validation,:].values,
y_train.iloc[train_validation].values.reshape([-1,1]),
epochs=13,
batch_size=64,
verbose=2,
validation_data=(X_train.iloc[test_validation ,:].values,y_train.iloc[val_test].values.reshape([-1,1])))
我运行它,得到准确性和误差的平均值/标准。然后尝试添加一个图层,删除一个图层,添加一些单元,删除一些。精度和误差存在变化(在 +/- 0.00x 范围内)。这种方法是不科学的,有什么更好的方法呢?