我想对整个测试集进行预测,这里测试集仅占数据集A的20%,我理解这是因为它仅用于训练目的,当我保存权重后再对另一个数据集B进行预测时,它是否也会拆分数据集B的测试集?我如何使用在数据集A上训练得到的权重对整个数据集B的测试集进行预测?谢谢。
x = dataset.iloc[:, :-1].values# Dependent Variable:y = dataset.iloc[:, -1].valuesX_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)from sklearn.preprocessing import StandardScalersc = StandardScaler()X_train = sc.fit_transform(X_train)X_test = sc.transform(X_test)# Initialising the ANNclassifier = Sequential()# Adding the input layer and the first hidden layerclassifier.add(Dense(units = 27, kernel_initializer = 'uniform', activation = 'relu', input_dim = 6))# Adding the second hidden layerclassifier.add(Dense(units = 27, kernel_initializer = 'uniform', activation = 'relu'))# Adding the output layerclassifier.add(Dense(units = 1, kernel_initializer = 'uniform', activation = 'sigmoid'))# Compiling the ANNclassifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])# Fitting the ANN to the Training setclassifier.fit(X_train, y_train, batch_size = 10, epochs = 20)#making predictions on test dataclassifier.predict(X_test)
回答:
据我理解,你在这里提出了两个问题:
首先,将“数据集B”拆分为训练集和测试集的操作是在这一行手动完成的:X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 0)
。
如果你在使用“数据集B”时,想要对“数据集B”的所有数据点进行测试,你不需要进行这种训练测试拆分,只需将“数据集B”的X
值直接传递给你的分类器即可。
至于如何做到这一点,根据你的第二个问题,这与你已经对“数据集A”的测试集所做的一样:
classifier.predict(X)
将使用它在“数据集A”上已经学到的拟合进行预测,假设你没有重新编译或再次调用.fit()
。