我想对整个测试集进行预测,这里的测试集仅占数据集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, kernel_initializer = 'uniform', activation = 'relu'))
# Adding the output layer
classifier.add(Dense(units = 1, kernel_initializer = 'uniform', 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, y_train, batch_size = 10, epochs = 20)
#making predictions on test data
classifier.predict(X_test)
答案 0 :(得分:1)
如果我的理解正确,您想在全新的数据集上使用经过训练的模型吗?
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的特征列
答案 1 :(得分:0)
据我了解,您在这里问两个问题:
首先,您可以在生产线上手动将“数据集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)
。