Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 验证损失或模型评估_Python_Tensorflow_Machine Learning_Keras - Fatal编程技术网

Python 验证损失或模型评估

Python 验证损失或模型评估,python,tensorflow,machine-learning,keras,Python,Tensorflow,Machine Learning,Keras,我有一个门控Reccurent单元GRU模型,我制作了两个版本,每个版本略有不同。当我同时运行这两个版本时,版本1给我的验证均方误差MSE为0.0013,而版本2给我的验证均方误差MSE为0.0015。这意味着版本1是一个更好的模型。但当我使用测试数据帧运行model.evaluateX_测试,y_测试时,版本给了我一个MSE值0.0027,而版本2给了我0.0018 我的问题是,在使用测试数据帧进行预测时,哪个版本被认为更好,哪个版本提供了更好的验证MSE,或者哪个模型提供了更低的MSE 谢谢

我有一个门控Reccurent单元GRU模型,我制作了两个版本,每个版本略有不同。当我同时运行这两个版本时,版本1给我的验证均方误差MSE为0.0013,而版本2给我的验证均方误差MSE为0.0015。这意味着版本1是一个更好的模型。但当我使用测试数据帧运行model.evaluateX_测试,y_测试时,版本给了我一个MSE值0.0027,而版本2给了我0.0018

我的问题是,在使用测试数据帧进行预测时,哪个版本被认为更好,哪个版本提供了更好的验证MSE,或者哪个模型提供了更低的MSE


谢谢。

首先,您不能在测试集上作弊,选择模型以便在测试中给出最佳结果。验证就是为了达到这个目的而使用的,而测试只是为了检查验证和测试之间的关系

您没有提到培训、验证和测试的规模。在培训、验证和测试中,您使用的数据的大小非常重要,必须足够大,以表示数据的真实分布

另一方面,对数据进行采样的方式应该是三个集合具有相同的分布


最后,同样重要的是,您正在比较两个结果,这两个结果在MSE中相差约0.0002。我不相信它能让您很好地判断哪一个更好。

您的验证和测试数据集的大小是多少?据我所知,您无法确定如果模型在验证数据上运行良好,它在测试数据上也会运行良好。这可能是因为验证和测试数据可能来自不同的数据分布验证为1一百万个样本,来自不同数据帧的测试也有大约一百万个样本。实际上,两个GRU模型甚至是训练、分割和测试数据都是完全相同的。唯一的区别是,对于一个模型,假设10%的数据是异常值,对数据帧进行过滤,另一个假设为15%。训练和验证数据帧来自1个数据帧,由约900万个样本和100万个样本组成,而测试数据集是不同的数据帧,也由100万个样本组成,因此可以解释测试和验证结果不同的原因。很可能您的验证并不能很好地代表整个发行版,这在您的案例中可能不是很重要。但是,验证过程中出现的错误并没有给两个模型带来任何大的区别。因此,你是否可以用10个不同的随机抽样对train和valid重复整个过程10次,然后检查哪一个平均概括得更好。事实上,我现在为每个代码运行了大约2-3次,并计算了平均val-MAE和MSE损失,这样我就可以比较它们了。