f_迴歸#
- sklearn.feature_selection.f_regression(X, y, *, center=True, force_finite=True)[原始碼]#
單變量線性迴歸測試,回傳 F 統計量和 p 值。
快速線性模型,用於測試單個迴歸器的效應,針對許多迴歸器依序進行。
這分為兩個步驟進行
每個迴歸器和目標之間的交叉相關性使用
r_迴歸
計算為:E[(X[:, i] - mean(X[:, i])) * (y - mean(y))] / (std(X[:, i]) * std(y))
它被轉換為 F 分數,然後轉換為 p 值。
f_迴歸
源自r_迴歸
,如果所有特徵都與目標正相關,則將以相同的順序對特徵進行排序。但請注意,與
f_迴歸
相反,r_迴歸
的值在 [-1, 1] 之間,因此可能是負數。f_迴歸
因此被推薦作為一種特徵選擇標準,以識別下游分類器的潛在預測性特徵,而不考慮與目標變數關聯的符號。請在 使用者指南 中閱讀更多內容。
- 參數 (Parameters):
- X形狀為 (n_samples, n_features) 的類陣列或稀疏矩陣
資料矩陣。
- y形狀為 (n_samples,) 的類陣列
目標向量。
- center布林值,預設值=True
是否要將資料矩陣
X
和目標向量y
中心化。預設情況下,X
和y
將會被中心化。- force_finite布林值,預設值=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 版本中新增。
- 回傳值 (Returns):
- f_statistic形狀為 (n_features,) 的 ndarray
每個特徵的 F 統計量。
- p_values形狀為 (n_features,) 的 ndarray
與 F 統計量相關的 p 值。
參見 (See also)
範例
>>> 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...])