Python:费舍尔精确检验

Python 模块 fisher 提供了费舍尔精确检验(Fisher’s Exact Test)的计算方法。利用该模块可以提取高区别度的特征,提高机器学习算法的准确率。

费舍尔精确检验(Fisher’s Exact Test)

作文自动评分模型通常需要提取高区别度的 n 元序列,用于判定高分和低分作文:

Good Essay Bad Essay
feature A 20 2
not feature A 2 20

从上例联列表可知包含 feature A 的作文分数较高。费舍尔精确检验可以统计特征的分布规律,通过 p 值筛选高分辨度的特征:

1
2
3
4
5
# import fisher module
from fisher import pvalue

# compute p value
fisher_val = pvalue(20, 2, 2, 20).twotail

对应 perl 代码:

1
2
3
4
5
6
7
8
9
use Inline Python => <<'END';
from fisher import pvalue

def get_pvalue(a,b,c,d):
return pvalue(a,b,c,d).two_tail

END

my $fisher_val = get_pvalue(20, 2, 2, 20)