Keras, DNN ending with sigmoid - model.predict produces values < 0.5. This indicates...?
I think the dropout is a bit high and if it's a binary classification, then why in the end a single node? 

Make sure your target variable is having proper shape in case of softmax...(one hot/ to_categorical())

def build_model():
    model = models.Sequential()
    model.add(layers.Dense(64, activation='relu', kernel_regularizer=regularizers.l2(0.001),
                           input_shape=(train_data.shape[1],)))
    model.add(layers.Dropout(0.3))
    model.add(layers.Dense(32, kernel_regularizer=regularizers.l2(0.001), activation='relu'))
    model.add(layers.Dropout(0.3))
    model.add(layers.Dense(**num_classes**, activation='softmax'))
    model.compile(optimizer='rmsprop',
              loss='binary_crossentropy',
              metrics=['accuracy'])

    return model


To improve it further, you need to use some techniques, such as cross-validation, batch normalization, and increase the epochs(maybe).