r_regression#

sklearn.feature_selection.r_regression(X, y, *, center=True, force_finite=True)[source]#

计算每个特征与目标之间的 Pearson r 值。

Pearson r 也称为 Pearson 相关系数。

用于检验多个回归变量中每个变量的个体效应的线性模型。这是一个用于特征选择过程的评分函数,而不是一个独立的特征选择过程。

每个回归变量与目标之间的互相关计算如下:

E[(X[:, i] - mean(X[:, i])) * (y - mean(y))] / (std(X[:, i]) * std(y))

有关用法详情,请参阅用户指南

1.0 版本新增。

参数:
Xshape 为 (n_samples, n_features) 的 {array-like, sparse matrix}

The data matrix.

yarray-like of shape (n_samples,)

目标向量。

centerbool, default=True

是否对数据矩阵 X 和目标向量 y 进行中心化处理。默认情况下,Xy 将被中心化。

force_finitebool, default=True

是否强制 Pearson R 相关系数为有限值。在 X 中的某些特征或目标 y 为常数的情况下,Pearson R 相关系数未定义。当 force_finite=False 时,返回 np.nan 来表示这种情况。当 force_finite=True 时,该值将被强制设置为最小相关系数 0.0

版本 1.1 中新增。

返回:
correlation_coefficientshape 为 (n_features,) 的 ndarray

特征的 Pearson R 相关系数。

另请参阅

f_regression

返回 F 统计量和 p 值的单变量线性回归检验。

mutual_info_regression

连续目标的互信息。

f_classif

分类任务中标签/特征之间的 ANOVA F 值。

chi2

分类任务中非负特征的卡方统计量。

示例

>>> from sklearn.datasets import make_regression
>>> from sklearn.feature_selection import r_regression
>>> X, y = make_regression(
...     n_samples=50, n_features=3, n_informative=1, noise=1e-4, random_state=42
... )
>>> r_regression(X, y)
array([-0.157,  1.        , -0.229])