f_迴歸#

sklearn.feature_selection.f_regression(X, y, *, center=True, force_finite=True)[原始碼]#

單變量線性迴歸測試,回傳 F 統計量和 p 值。

快速線性模型,用於測試單個迴歸器的效應,針對許多迴歸器依序進行。

這分為兩個步驟進行

  1. 每個迴歸器和目標之間的交叉相關性使用 r_迴歸 計算為:

    E[(X[:, i] - mean(X[:, i])) * (y - mean(y))] / (std(X[:, i]) * std(y))
    
  2. 它被轉換為 F 分數,然後轉換為 p 值。

f_迴歸 源自 r_迴歸,如果所有特徵都與目標正相關,則將以相同的順序對特徵進行排序。

但請注意,與 f_迴歸 相反,r_迴歸 的值在 [-1, 1] 之間,因此可能是負數。f_迴歸 因此被推薦作為一種特徵選擇標準,以識別下游分類器的潛在預測性特徵,而不考慮與目標變數關聯的符號。

此外,f_迴歸 會回傳 p 值,而 r_迴歸 不會。

請在 使用者指南 中閱讀更多內容。

參數 (Parameters):
X形狀為 (n_samples, n_features) 的類陣列或稀疏矩陣

資料矩陣。

y形狀為 (n_samples,) 的類陣列

目標向量。

center布林值,預設值=True

是否要將資料矩陣 X 和目標向量 y 中心化。預設情況下,Xy 將會被中心化。

force_finite布林值,預設值=True

是否強制使 F 統計量和相關的 p 值為有限值。在以下兩種情況下,F 統計量預期不會是有限的

  • 當目標 yX 中的某些特徵為常數時。在這種情況下,皮爾森 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 版本中新增。

回傳值 (Returns):
f_statistic形狀為 (n_features,) 的 ndarray

每個特徵的 F 統計量。

p_values形狀為 (n_features,) 的 ndarray

與 F 統計量相關的 p 值。

範例

>>> 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...])