Deep learning 测试训练后的keras模型并将其用于新样本时的预测差异
我在使用一个我已经训练、保存并加载使用的模型时遇到问题。问题是,当我使用新数据(不是测试数据的一部分,而是来自同一来源)的模型时,我得到了不同的预测 编辑1:我意识到,一次预测整个测试数据和一次预测每个测试数据项时,我会得到不同的预测 这就是我生成培训和测试数据的方式(之后我将其拆分)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.
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的值。我不能百分之百肯定这是一个错误,但它肯定是一个不同的行为。