f_regression#
- sklearn.feature_selection.f_regression(X, y, *, center=True, force_finite=True)[source]#
返回 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因此被推荐作为特征选择标准,用于识别下游分类器中具有潜在预测性的特征,而不管与目标变量关联的符号如何。此外,
f_regression返回 p 值,而r_regression不返回。在用户指南中阅读更多内容。
- 参数:
- Xshape 为 (n_samples, n_features) 的 {array-like, sparse matrix}
The data matrix.
- yarray-like of shape (n_samples,)
目标向量。
- centerbool, default=True
是否对数据矩阵
X和目标向量y进行中心化。默认情况下,X和y将被中心化。- force_finitebool, default=True
是否强制 F 统计量和相关的 p 值为有限值。F 统计量预计不为有限值有两种情况:
当目标
y或X中的某些特征为常数时。在这种情况下,皮尔逊 R 相关性未定义,导致 F 统计量和 p 值中出现np.nan值。当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。
版本 1.1 中新增。
- 返回:
- f_statisticndarray of shape (n_features,)
每个特征的 F 统计量。
- p_valuesndarray of shape (n_features,)
与 F 统计量相关的 p 值。
另请参阅
r_regression回归任务中标签/特征之间的皮尔逊 R。
f_classif分类任务中标签/特征之间的 ANOVA 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.21, 2.67e13, 2.66]) >>> p_values array([0.276, 1.54e-283, 0.11])