在Python中计算Fisher准则
有没有一个Python模块,可以在给定两个向量x和y的情况下,计算Fisher准则,其中y是一个二分类(0和1)?具体的计算公式可以在这里查看:http://compbio.soe.ucsc.edu/genex/genexTR2html/node12.html
请注意,我并不是想使用Fisher的线性判别,只是想要Fisher准则的计算 :).
提前谢谢大家!
2 个回答
1
这看起来非常像线性判别分析。如果你觉得这样可以,那你可以使用scikit-learn和mlpy,或者其他很多支持向量机(SVM)的工具。
3
根据我所了解的情况,似乎没有现成的解决方案,但你可以自己写一个(请确保这个结果是正确的,我只是根据我对公式的理解来判断的)。
import numpy as np
def fisher_criterion(v1, v2):
return abs(np.mean(v1) - np.mean(v2)) / (np.var(v1) + np.var(v2))
比如说,这样计算出来的结果是:
>>> fisher_criterion([0, 1, 2], [0, 1])
0.54545454545454553