如何解决对整个测试集进行预测
我想对整个测试集进行预测,这里的测试集仅占数据集A的20%,我知道这是因为它仅出于训练目的,当我保存权重然后对另一个数据集B进行预测时,还将拆分测试集数据集B。 如何使用训练过的数据集A的权重对整个测试集数据集B进行预测。 谢谢。
x = dataset.iloc[:,:-1].values
# Dependent Variable:
y = dataset.iloc[:,-1].values
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2,random_state = 0)
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)
# Initialising the ANN
classifier = Sequential()
# Adding the input layer and the first hidden layer
classifier.add(Dense(units = 27,kernel_initializer = 'uniform',activation = 'relu',input_dim = 6))
# Adding the second hidden layer
classifier.add(Dense(units = 27,activation = 'relu'))
# Adding the output layer
classifier.add(Dense(units = 1,activation = 'sigmoid'))
# Compiling the ANN
classifier.compile(optimizer = 'adam',loss = 'binary_crossentropy',metrics = ['accuracy'])
# Fitting the ANN to the Training set
classifier.fit(X_train,batch_size = 10,epochs = 20)
#making predictions on test data
classifier.predict(X_test)
解决方法
如果我的理解正确,您想在全新的数据集上使用经过训练的模型吗?
Keras提供了几种方法来执行此操作,但我认为最常见的方法是使用命令将训练后的模型导出到.hd5文件中
model.save("filepath/model.hd5")
现在您可以使用命令加载并在需要的地方使用模型
model = model.load("filepath/model.hd5")
score = model.evaluate(X,Y)
其中X是数据集B的要素列,Y是获得评分的响应。如果数据集B在同一实例中,则始终可以使用
model.predict(X)
其中X现在是数据集B的特征列
,据我了解,您在这里问两个问题:
首先,您可以在生产线上手动将“数据集B”拆分为火车和测试集
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2,random_state = 0)
。
如果在使用“数据集B”时要在“数据集B”的所有数据点上测试分类器,则不必进行此火车测试拆分,只需通过{{1 }}值作为分类器的“数据集B”。
关于如何执行此操作,就第二个问题而言,它与对“数据集A”的测试集所做的操作相同:
X
将使用已经在“数据集A”上学到的适合度进行预测,假设您不重新编译或再次调用classifier.predict(X)
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。