f_regression#

sklearn.feature_selection.f_regression(X, y, *, center=True, force_finite=True)[源代码]#

单变量线性回归测试返回F统计量和p值。

快速线性模型,用于测试单个回归变量的效果,并对多个回归变量进行顺序测试。

这是通过两个步骤完成的:

  1. 每个回归量和目标之间的互相关是通过以下方式计算的 r_regression 作为::

    E[(X[:, i] - mean(X[:, i])) * (y - mean(y))] / (std(X[:, i]) * std(y))
    
  2. 它被转换为F分数,然后转换为p值。

f_regression 来源于 r_regression 如果所有特征与目标正相关,则将以相同的顺序对特征进行排名。

但请注意,相反 f_regression , r_regression 价值观在于 [-1, 1] 因此可以是负的。 f_regression 因此,建议作为特征选择标准,以识别下游分类器的潜在预测特征,无论与目标变量的关联符号如何。

Furthermore f_regression returns p-values while r_regression does not.

阅读更多的 User Guide .

参数:
X形状(n_samples,n_features)的{类数组,稀疏矩阵}

数据矩阵。

y形状类似阵列(n_samples,)

目标载体。

center布尔,默认=True

是否将数据矩阵居中 X 和目标载体 y .默认情况下, Xy 将处于中心。

force_finite布尔,默认=True

是否强制F统计量和相关p值为有限。在两种情况下,F统计量预计不是有限的:

  • 当目标 y 或一些功能 X 是恒定的。在这种情况下,没有定义Pearson ' s R相关性,导致获得 np.nan F统计量和p值中的值。当 force_finite=True ,F统计量设置为 0.0 并且相关的p值设置为 1.0 .

  • 当一个功能在 X 与目标完全相关(或反相关) y .在这种情况下,F统计量预计为 np.inf .当 force_finite=True ,F统计量设置为 np.finfo(dtype).max 并且相关的p值设置为 0.0 .

Added in version 1.1.

返回:
f_statistic形状的nd数组(n_features,)

每个特征的F统计量。

p_values形状的nd数组(n_features,)

与F统计量相关的P值。

参见

r_regression

回归任务的标签/特征之间的Pearson R。

f_classif

分类任务的标签/特征之间的方差分析F值。

chi2

分类任务的非负特征的卡方统计数据。

SelectKBest

根据k个最高分数选择特征。

SelectFpr

根据假阳性率测试选择功能。

SelectFdr

根据估计的错误发现率选择功能。

SelectFwe

根据系列错误率选择功能。

SelectPercentile

根据最高分数的百分位数选择功能。

示例

>>> from sklearn.datasets import make_regression
>>> from sklearn.feature_selection import f_regression
>>> X, y = make_regression(
...     n_samples=50, n_features=3, n_informative=1, noise=1e-4, random_state=42
... )
>>> f_statistic, p_values = f_regression(X, y)
>>> f_statistic
array([1.2...+00, 2.6...+13, 2.6...+00])
>>> p_values
array([2.7..., 1.5..., 1.0...])