我正在研究基于Keras的多标签分类器。我创建了一个函数,用于加载训练和测试数据,然后在函数内部对X/Y进行处理/拆分。但是,在运行模型时出现了错误,但不确定意思:
以下是我的代码:
def KerasClassifer(df_train, df_test):
X_train = df_train[columnType].copy()
y_train = df_train[variableToPredict].copy()
labels = y_train.unique()
print(X_train.shape[1])
#using keras to do classification
from tensorflow import keras
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Activation
from tensorflow.keras.optimizers import SGD
model = Sequential()
model.add(Dense(5000, activation='relu', input_dim=X_train.shape[1]))
model.add(Dropout(0.1))
model.add(Dense(600, activation='relu'))
model.add(Dropout(0.1))
model.add(Dense(len(labels), activation='sigmoid'))
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='binary_crossentropy',
optimizer=sgd)
model.fit(X_train, y_train, epochs=5, batch_size=2000)
preds = model.predict(X_test)
preds[preds>=0.5] = 1
preds[preds<0.5] = 0
score = model.evaluate(X_test, y_test, batch_size=2000)
score
以下是我的数据属性(如果有帮助):
x train shape (392436, 109)
y train shape (392436,)
len of y labels 18
我该如何修复代码以避免出现此错误?