我制作了一个用于假新闻检测的 Keras NN 模型,我得到了 89,1 的验证准确度。我使用 50 000 个样本进行训练,使用 10000 个样本进行测试,使用 2000 个样本进行验证。我已经保存了该模型。
现在我想加载该模型,加载我想根据该数据进行预测的新数据。
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler, RobustScaler, Normalizer, MinMaxScaler
from sklearn.feature_selection import RFE
from sklearn.metrics import accuracy_score
from tensorflow.python.keras.models import Sequential, load_model
from tensorflow.python.keras.layers import Dense, Dropout, LeakyReLU, Conv2D, LSTM, Flatten
from tensorflow.python.keras import optimizers
from tensorflow.python.keras.regularizers import l2
from tensorflow.python.keras.callbacks import EarlyStopping, ModelCheckpoint
import numpy as np
my_model_1 = load_model("keras fake news acc 89.1.h5")
validation_df = pd.read_csv("validation.csv")
validation_features = validation_df.iloc[:,:-1]
validation_results = validation_df.iloc[:,-1].tolist()
scaler = StandardScaler()
validation_features = scaler.transform(validation_features) #ERROR
问题是我收到一个错误:
NotFittedError: This StandardScaler instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.
如果我使用fit_transform
在我的功能上,我没有收到错误,但我的准确率为 52%,这很糟糕(因为我的准确率为 89.1%)。
我怎样才能解决这个问题?
我是否还需要加载用于训练模型的数据,或者我可以只加载模型并传递数据进行预测?
当我训练模型时,我使用了fit_transform
用于训练数据和transform
用于测试数据。我想现在我应该只使用transform
在我的数据上,但我收到错误