以xgboost 或random forest 开头怎么样? - 如此简单的“旧”ML?
好处是您可以在训练后可视化模型的决策树。
如果在 tensorflow 中使用 NN(或者更简单:带有 tensorflow 后端的 keras),您可以使用 MLP(多层感知器),因为问题答案在输入中的位置是固定的。你不需要很多层。
重要的是您按列对输入数据进行规范化,以便输入数字分别不会比 +1/-1 大/小很多。介绍性书籍虽然很重要,但经常忽略这一点。
由于您的目标标签是“接受”或“拒绝”,二元分类器会执行此操作(在机器学习方法中也是如此)。 (您使用 0 和 1 作为标签)。
对于 NN,您不需要进行如此多的层或神经元的分类。首先尝试最小的网络。假设第一层有 10 个神经元,下一层有 7 个神经元(可能更少),然后是 1 个输出神经元用于二元决策。
对于 Keras,这将是:
from keras.models import Sequential
from keras.layers import Dense
def create_mlp(n_input = 500): # number of columns of input data 500 here
model = Sequential()
model.add(Dense(10, input_dim=n_input, kernel_initializer='normal', activation='relu')) # init = kernel_initializer
model.add(Dense(7, kernel_initializer='normal', activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['acc'])
return model
model = create_mlp(500) # this will generate the correct NN compiled.
您的数据框(或 Numpy 输入数组必须将样本作为行,
这些列是针对问题 1 列的每个答案。
您必须以数字形式编码的答案。数字应该很小——最好在 -1 和 1 之间。神经网络不喜欢大数字。因此,按列归一化会有所帮助。)
就是这样。我去年学到了所有这些东西。祝学习顺利。这会很有趣!