我在 Python 中使用 Keras 和 Theanos 后端。
我有 2117 个样本,每个样本都有一个单独的目标(故意),即。2117 个输出。
与类别相反,目标是评级,例如。(16.4714494876, 17.4129353234, 17.4476570289) 整个数字很重要。
我有问题/不知道从哪里开始。
1)当我运行 NN 时,它只将目标输出为整数,而不是实际值的格式。例如。16 而不是 16.xxxxxx
2)大概我只能根据输出与目标的接近程度来衡量预测的准确性,因为有这么多目标,这种类型的分类问题有我可以研究的名称吗?
3)在我读过的 3 篇研究论文中,将 NN 应用于我的特定分类问题,他们将输出层列为只有 1 个神经元,但没有提供进一步的解释,这怎么可能?
这是我的模型。
# fix random seed for reproducibility
seed = 7
np.random.seed(seed)
X = np.array(df[FEATURES].values)
Y = np.array(df["MTPS"].values)
# define baseline model
def baseline_model():
# create model
model = Sequential()
model.add(Dense(10, input_dim=(len(FEATURES)), init='normal', activation='relu'))
model.add(Dense(2117, init='normal', activation='softmax'))
# Compile model
model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
return model
#build model
estimator = KerasClassifier(build_fn=baseline_model, nb_epoch=100, batch_size=5, verbose=2)
#cross validation
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=seed)
estimator.fit(X_train, Y_train)
#print class predictions
print estimator.predict(X_test)
print Y_test
谢谢你的帮助。