为了将不同的学习算法的泛化性能进行全面的比较,光靠学习器对某个数据集上的性度度量是不够的,我们需要用到假设检验,它为我们进行学习算法的比较提供了重要依据。
同时对于学习算法的比较,我们一般需要在多个数据集上比较多个算法的性能,这里常常采用Friedman检验和Nemenyi检验来进行比较。
1.Friedman检验
对于k个算法和N个数据集,首先得到每个算法在每个数据集上的测试性能结果,然后根据性能结果有好到坏排序,并给出序值1, 2, …, k,若多个算法性能结果相同,则它们平分序值,假设第i个算法的平均序值为ri,则ri服从正态分布:


则变量tF服从自由度为k-1和(k-1)(N-1)的F分布,假设这k个算法在N个数据集上的性能没有差异,若假设检验拒绝这个假设,则说明算法的性能显著不同,这时需要进行后续检验进一步区分各算法。
这里是Friedman的python实现:


本文介绍如何使用Friedman检验和Nemenyi检验来比较不同学习算法的泛化性能,包括算法在多个数据集上的测试结果,以及如何通过这些检验确定算法性能的显著差异。

1万+

被折叠的 条评论
为什么被折叠?



