Deep learning 测试训练后的keras模型并将其用于新样本时的预测差异

Deep learning 测试训练后的keras模型并将其用于新样本时的预测差异,deep-learning,time-series,keras,scaletransform,Deep Learning,Time Series,Keras,Scaletransform,我在使用一个我已经训练、保存并加载使用的模型时遇到问题。问题是,当我使用新数据(不是测试数据的一部分,而是来自同一来源)的模型时,我得到了不同的预测 编辑1:我意识到,一次预测整个测试数据和一次预测每个测试数据项时,我会得到不同的预测 这就是我生成培训和测试数据的方式(之后我将其拆分) df.dropna(inplace=True) 对于范围(100)内的i: df[i]=df.data.shift(i) df.dropna(就地=真) 打印(计数器(df['label'].值)) Xa=np.

我在使用一个我已经训练、保存并加载使用的模型时遇到问题。问题是,当我使用新数据(不是测试数据的一部分,而是来自同一来源)的模型时,我得到了不同的预测

编辑1:我意识到,一次预测整个测试数据和一次预测每个测试数据项时,我会得到不同的预测

这就是我生成培训和测试数据的方式(之后我将其拆分)

df.dropna(inplace=True)
对于范围(100)内的i:
df[i]=df.data.shift(i)
df.dropna(就地=真)
打印(计数器(df['label'].值))
Xa=np.array(df.drop(['label','Close','avg'],axis=1).values)
数据量表=Xa[-1000:]
scaler=MinMaxScaler(功能范围=(0,1))
Xa=缩放器。拟合_变换(Xa)
Ya=np.array(df['label'].values)
然后,我将数据拆分为训练数据并进行测试以拟合模型。 培训后,我使用测试数据测试模型,并得到此类预测:

model.predict(x=x_检验)
[ 0.64  0.17  0.19]
[ 0.24  0.76  0.  ]
[ 0.47  0.51  0.02]
[ 0.63  0.26  0.11]
[ 0.62  0.1   0.28]
[ 0.14  0.86  0.  ]
[ 0.36  0.63  0.01]
[ 0.57  0.37  0.06]
[ 0.45  0.53  0.02]
[ 0.18  0.82  0.  ]
[ 0.61  0.09  0.3 ]
#第3列中的最大值为0.45。永远不要!
要使用该模型,我以以下方式收集数据:

scaler=MinMaxScaler(功能范围=(0,1))
scaler.fit(用于缩放的数据)
X_predict=np.array(df.data[current_position-100:current_position][::-1]。值)。重塑(1,-1)
X_predict=scaler.transform(X_predict)
prediccion=model.predict(X_predict.reforme(1,-1))[0]
#**编辑1:*注意,我一次只预测一个项目
我通过这种方式得到的预测是:

[0.890.0.10]
[ 1.  0.  0.]
[ 0.87  0.11  0.01]
[ 0.99  0.     0.00]
[ 0.30  0.69  0.   ]
[ 0.99  0.     0.00]
[ 0.61  0.     0.38]
[ 0.20  0.     0.79]
[ 0.39  0.     0.60]
[ 0.  0.  1.]
[ 0.00  0.     0.99]
[ 0.12  0.     0.87]
#在这里,我在第3列中得到了很多高于0.45的值。这从来没有
#发生在整个测试数据中。。。
我的错在哪里?我已经尝试保存和重新加载模型,但是测试数据的预测没有改变,所以我认为错误不在于保存/加载模型。我还尝试将新样本合并到测试集中进行预测,拟合整个集合并再次提取新数据,但问题仍然存在。 任何暗示都欢迎
提前谢谢

为什么你认为这是一个错误?我得到了完全不同的概率值范围,主要是在第三列。在测试数据中,我从未得到超过0.45的值,而在新的预测数据中,我得到了很多超过0.45甚至1的值。我不能100%肯定有错误,但这肯定是一种不同的行为。你为什么认为有错误?我得到的概率值范围完全不同,主要是在第三列。在测试数据中,我从未得到超过0.45的值,而在新的预测数据中,我得到了很多超过0.45甚至1的值。我不能百分之百肯定这是一个错误,但它肯定是一个不同的行为。