我目前正在使用 Keras 的功能 API 和具有多个自变量和单个分类目标变量的数据集使用以下代码构建神经网络模型。
input_layer = keras.Input(shape=(89,), name="input_layer")
dense_1 = keras.layers.Dense(50, name = 'dense_1')(input_layer)
dense_2 = keras.layers.Dense(50, name = 'dense_2')(dense_1)
classification_output_1 = keras.layers.Dense(31, activation = 'softmax', name = 'classification_output_1')(dense_2)
model = keras.Model(inputs = input_layer, outputs = [regression_output_1, classification_output_1])
model.compile(
optimizer = "adam",
loss = 'sparse_categorical_crossentropy'
)
model_1 = model.fit(
X_train,
y_train["Category_Target"],
epochs = 10,
batch_size = 50,
verbose = 1
)
y_pred = model_1.predict(X_train)
y_pred = pd.DataFrame(y_pred[0])
y_pred.columns = [i for i in pd.get_dummies(y_train["Category_Target"]).columns]
由于 y_pred 是单热向量的形式,我认为使用 pd.get_dummies().columns 可以获得我需要的类标签。我的问题是,这种方法是否可靠,如果不可靠,是否有任何其他方法可以获取预测值的类标签?获取类标签的旧方法(即 predict_classes)已被弃用,我真的找不到可靠的方法来获取它们。我还考虑了其他方法,例如:
y_pred.columns = list(y_train.drop_duplicates(by = "Category_Target")["Category_Target"])
我尝试过的两种方法似乎都不是正确标记类的可靠方法