Algorithm 算法训练阶段的健全性检查

Algorithm 算法训练阶段的健全性检查,algorithm,testing,image-processing,machine-learning,Algorithm,Testing,Image Processing,Machine Learning,我有一个图像压缩算法,我可以训练,然后给它一些测试图像。 不过,这段代码似乎有问题。 为了测试这一点,我尝试给它提供与我训练它时使用的相同的测试图像(即测试集==训练集)。现在我的一般问题如下 如果你用你训练过的数据测试一个算法,会发生什么 我的怀疑是,我应该得到同样的结果,就好像我从来没有训练过算法一样(也就是说,我只是在没有任何训练的情况下用原始数据进行了测试) 你对这种情况怎么看? 你建议什么样的测试(比如健全性检查)来确保算法训练阶段是合理的 谢谢你的回答。该算法使用上下文树加权,即在

我有一个图像压缩算法,我可以训练,然后给它一些测试图像。 不过,这段代码似乎有问题。 为了测试这一点,我尝试给它提供与我训练它时使用的相同的测试图像(即测试集==训练集)。现在我的一般问题如下

如果你用你训练过的数据测试一个算法,会发生什么

我的怀疑是,我应该得到同样的结果,就好像我从来没有训练过算法一样(也就是说,我只是在没有任何训练的情况下用原始数据进行了测试)

你对这种情况怎么看? 你建议什么样的测试(比如健全性检查)来确保算法训练阶段是合理的


谢谢你的回答。该算法使用上下文树加权,即在灰度图像的某一点上计算0或1的概率。它使用该点之前的上下文来估计其概率(0/1)。压缩比(位/字节)作为结果优劣的度量。 首先,我在单个图像(x)上运行ctw,压缩为0.75,然后我使用示例6图像进行训练,并使用训练集之外的相同图像(x)进行测试。但训练后的压缩比为0.80位/字节。图像为2048*2048灰度。 在得到这些结果之后,我试图通过交叉验证来测试ctw的正确性,得到了我之前解释过的奇怪结果

我希望这些信息将有助于给我答案


谢谢

这完全取决于算法和您的问题。有些(例如,使用最近邻方法进行分类)将很容易得到完美的答案。大多数测试数据在不同的测试数据上表现出更好的性能,这些测试数据来自与训练数据相同的分布,但并不完美。我想可能有一些地方你好像从来没有训练过它,但是对于大多数算法来说,没有任何训练的测试甚至不是一个定义的操作,或者它只是一个完全随机的结果

对训练数据进行测试可以是一个相当不错的健全检查,检查代码是否正常工作,因为它应该做得很好。但是最好只使用一个小的训练集/测试集进行测试,并确保它在测试集上执行合理的操作。对于分类或回归,您通常会执行一些交叉验证的变体(以避免在训练集上进行测试)来执行真正的性能评估,您可以在一些小数据集上执行这些操作,这些数据集可以快速运行以测试代码


不过,我不太清楚你面对的是什么环境。你能再解释一下吗?i、 e.算法如何使用其训练集进行图像压缩?

您的怀疑是不正确的。ML算法通常应该在用于训练它的集合上给出非常好的结果(在某些情况下,是完美的),除非该算法完全不适合该任务,或者如果它构思不好并且不收敛

很难说,因为我不确定你是如何教授压缩算法的。您是否使用原始文件和输出文件大小的比率来衡量结果的“优劣”?你是如何在此基础上调整算法的,你是如何确保这些调整会导致收敛,而不仅仅是随机效应

就健全性检查而言,如果算法在用于训练它的集合上给出的结果不比随机结果好,那么算法就不起作用。相反的情况并非如此——训练集测试良好并不意味着算法运行良好