一种算法的预处理会改变实验条件吗?

Does the preprocessing of one algorithm change the conditions of the experiment?

提问人:melson 提问时间:12/2/2022 更新时间:12/2/2022 访问量:35

问:

举个例子,

我们有两种算法,它们使用相同的数据集以及相同的训练和测试数据:

1 - 使用 k-NN 并返回精度;

2 - 在 k-NN 之前应用预处理,并在返回精度之前添加更多内容。

尽管预处理“是”算法 2 的一部分,但我被告知我们无法比较这两种方法,因为实验条件因预处理而发生了变化。 鉴于预处理仅针对算法 2,我相信情况没有改变。

哪种说法是正确的?

python 算法 机器学习 比较 理论

评论

1赞 Sembei Norimaki 12/2/2022
如果它们都使用准确性,则可以比较它们。准确率是一个百分比,因此您可以比较这两个数字,看看哪个数字的准确性更高。请注意,准确率只是一个指标,这并不意味着更高的准确性意味着更好。根据您的问题,您可能希望最大化另一个指标,例如 F 分数。
1赞 Sembei Norimaki 12/2/2022
这有点像有两个跑步者要跑 100 米。你给一个人穿运动鞋,另一个人赤脚跑步。当然,您可以比较他们跑 100 米所需的时间,看看哪个跑的时间更短。这种比较是否公平是值得商榷的。也许 runner1(算法一)不需要预处理(鞋子),因为它赤脚跑得更好。因此,您需要定义 compare 的含义。如果指标具有相同的单位,您始终可以比较它们。对于相同的算法,您可以做的是在有或没有预处理的情况下运行它,看看它的性能如何更好。
1赞 Matt Timmermans 12/2/2022
如果预处理被认为是算法 2 的一部分,并且它不涉及任何额外的输入,那么您当然可以比较它们。如果您提供任何其他输入,甚至是决定是否运行预处理或运行哪种预处理等输入,那么它就不是一个有效的比较。

答:

1赞 user1196549 12/2/2022 #1

这取决于你在比较什么。

  • 如果将这两种方法进行比较“允许预处理”,则不会在实验中包括预处理;原则上,您应该测试几个(相同的)查询;

  • 如果比较“不允许预处理”,则将所有内容都包含在测量中。