【随笔-论文记录】比较算法之间的性能是否有显著性差异的T检验实现(Python)
在科研实验当中,经常会碰见审稿人要求证明算法间确实有统计学上的差异,而不单纯是肉眼所见的差别,这个时候就可以考虑使用T检验了,Python非常方便,有可以直接调用的包,首先给出代码:
import numpy
import scipy
from scipy.stats import ttest_rel
def t_test(d1,d2):
# print(stats.levene(d1,d2))#如果返回结果的P值远大于0.05,那么我们认为两总体具有方差齐性
#否则,需要加上参数equal_var并设定为False
print("Null Hypothesis: mean(d1) = mean(d2), α= 0.05")
ttest,pval = ttest_rel(d1,d2)
if pval < 0.05:
print("Reject the Null Hypothesis.") #表示有显著性差异
else:
print("Accept the Null Hypothesis.")
其中d1和d2的格式是list,记录多次实验结果,通常我们使用的是平均值作为算法的结果,T检验就要求记录求得平均值的每次数据