我建立了Keras模型来预测多类别,多标签的分类问题。数据集包含要素(0到1之间的小数)。
训练集中每一行的目标是格式为<1,0,0,0,1,0>的6个二进制值的Label。
因此,给定十进制功能集(即测试数据),模型应该能够预测这些标签。
问题是,我无法使用我的模型通过KerasClassifier包装器对看不见的测试数据(特征数据集的十进制值)进行评分。
import numpy
import pandas
from keras.models import Sequential
from keras.layers import Dense
from keras.wrappers.scikit_learn import KerasClassifier
from keras.utils import np_utils
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import KFold
from sklearn.preprocessing import LabelEncoder
from sklearn.pipeline import Pipeline
dataframe = pandas.read_csv("train.csv", header=None)
X = dataframe.iloc[:, 0:294].values
Y = dataframe.iloc[:, 294:300].values
def baseline_model():
model = Sequential()
model.add(Dense(8, input_dim = 294, kernel_initializer='normal', activation='relu'))
model.add(Dense(6, kernel_initializer='normal', activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
return model
estimator = KerasClassifier(build_fn=baseline_model, epochs=5, batch_size=5)
kfold = KFold(n_splits=10, shuffle=True, random_state=seed)
results = cross_val_score(estimator, X, Y, cv=kfold)
有人可以告诉我如何使用我建立的模型来预测我的(特征)测试数据集,并且所得到的预测必须为我提供<1,0,0,0,1,0>的结果基本上与火车数据标签的格式相同。