f_regression#
- sklearn.feature_selection.f_regression(X, y, *, center=True, force_finite=True)[源代码]#
单变量线性回归测试返回F统计量和p值。
快速线性模型,用于测试单个回归变量的效果,并对多个回归变量进行顺序测试。
这是通过两个步骤完成的:
每个回归量和目标之间的互相关是通过以下方式计算的
r_regression
作为::E[(X[:, i] - mean(X[:, i])) * (y - mean(y))] / (std(X[:, i]) * std(y))
它被转换为F分数,然后转换为p值。
f_regression
来源于r_regression
如果所有特征与目标正相关,则将以相同的顺序对特征进行排名。但请注意,相反
f_regression
,r_regression
价值观在于 [-1, 1] 因此可以是负的。f_regression
因此,建议作为特征选择标准,以识别下游分类器的潜在预测特征,无论与目标变量的关联符号如何。Furthermore
f_regression
returns p-values whiler_regression
does not.阅读更多的 User Guide .
- 参数:
- X形状(n_samples,n_features)的{类数组,稀疏矩阵}
数据矩阵。
- y形状类似阵列(n_samples,)
目标载体。
- center布尔,默认=True
是否将数据矩阵居中
X
和目标载体y
.默认情况下,X
和y
将处于中心。- 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...])