这两天在看Sklearn的文档,在feature_selection一节中遇到俩f值,它们是用来判断模型中特征与因变量的相关性的。刚开始看的时候一头雾水,因为需要数理统计中方差分析的背景,现在在这里简要剖析一下这两个方法的原理和用法。
我们先来看看sklearn的API是怎么解释这两个方法的:
Compute the ANOVA F-value for the provided sample. ——sklearn.feature_selection.f_classif
f_calssif计算ANOVA中的 f 值,这和特征选择怎么搭上关系???
下面是对f_regression的解释,更晕了。。
Univariate linear regression tests.
Linear model for testing the individual effect of each of many regressors. This is a scoring function to be used in a feature seletion procedure, not a free standing feature selection procedure.
This is done in 2 steps:
The correlation between each regressor and the target is computed, that is,
((X[:, i] - mean(X[:, i])) * (y - mean_y)) / (std(X[:, i]) * std(y)).
It is converted to an F score then to a p-value.
——sklearn.feature_selection.f_regression
方差分析(ANOVA)
在传统的统计学中
我们开发出了一种降血压的药,需要检验这个降血压药品的药效如何。我们就做了如下实验,给定不同剂量,分别是0,1,2,3,4这四个级别的剂量(0剂量表示病人服用了安慰剂),给4组病人服用,在一定时间后测量病人的血压差,在得到数据以后。我们要问,这种新药是不是有显著药效,也就是说病人的血压差是不是显著的不等于0。
数据如下:
剂量 | 血压差 |
---|---|
0 | x01 x02 … x0n0 |
1 | x11 x12 … x1n1 |
2 | x21 x22 … x2n2 |
3 | x31 x32 … x3n3 |
4 | x41 x42 … x4n4 |
我们得到了5个总体 Xi,i=0,1,2,3,4 ,这五个总体的均值为 μi ,我们假设是:
H0:μ0=μ1