SelectKBest#

class sklearn.feature_selection.SelectKBest(score_func=<function f_classif>, *, k=10)[原始碼]#

根據 k 個最高分數選擇特徵。

請參閱使用者指南以獲取更多資訊。

參數:
score_func可呼叫物件,預設值 = f_classif

接收兩個陣列 X 和 y,並返回一對陣列 (分數、p 值) 或僅包含分數的單個陣列的函式。預設值為 f_classif (請參閱下方的「另請參閱」)。預設函式僅適用於分類任務。

在 0.18 版本中新增。

k整數或「all」,預設值 = 10

要選擇的頂部特徵數量。「all」選項會繞過選擇,用於參數搜尋。

屬性:
scores_形狀為 (n_features,) 的類陣列物件

特徵的分數。

pvalues_形狀為 (n_features,) 的類陣列物件

特徵分數的 p 值,如果 score_func 僅返回分數,則為 None。

n_features_in_整數

fit 期間看到的特徵數量。

在 0.24 版本中新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

fit 期間看到的特徵名稱。僅當 X 具有全為字串的特徵名稱時定義。

在 1.0 版本中新增。

另請參閱

f_classif

f_classif:分類任務中標籤/特徵之間的 ANOVA F 值。

mutual_info_classif

mutual_info_classif:離散目標的互資訊。

chi2

chi2:分類任務中非負特徵的卡方統計量。

f_regression

f_regression:回歸任務中標籤/特徵之間的 F 值。

mutual_info_regression

mutual_info_regression:連續目標的互資訊。

SelectPercentile

SelectPercentile:根據最高分數的百分位數選擇特徵。

SelectFpr

SelectFpr:根據假陽性率測試選擇特徵。

SelectFdr

SelectFdr:根據估計的假發現率選擇特徵。

SelectFwe

SelectFwe:根據全族錯誤率選擇特徵。

GenericUnivariateSelect

GenericUnivariateSelect:具有可配置模式的單變數特徵選擇器。

注意事項

分數相同的特徵之間的聯繫將以未指定的方式打破。

此篩選器支援僅請求 X 以計算分數的非監督特徵選擇。

範例

>>> from sklearn.datasets import load_digits
>>> from sklearn.feature_selection import SelectKBest, chi2
>>> X, y = load_digits(return_X_y=True)
>>> X.shape
(1797, 64)
>>> X_new = SelectKBest(chi2, k=20).fit_transform(X, y)
>>> X_new.shape
(1797, 20)
fit(X, y=None)[原始碼]#

在 (X, y) 上執行分數函式並取得適當的特徵。

參數:
X形狀為 (n_samples, n_features) 的類陣列物件

訓練輸入樣本。

y形狀為 (n_samples,) 的類陣列物件或 None

目標值 (分類中的類別標籤,回歸中的實數)。如果選擇器是非監督的,則 y 可以設定為 None

返回:
self物件

返回實例本身。

fit_transform(X, y=None, **fit_params)[原始碼]#

擬合資料,然後轉換資料。

使用可選參數 fit_params 將轉換器擬合到 Xy,並返回 X 的轉換版本。

參數:
X形狀為 (n_samples, n_features) 的類陣列物件

輸入樣本。

y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列物件,預設值 = None

目標值 (對於非監督轉換為 None)。

**fit_params字典

額外的擬合參數。

返回:
X_new形狀為 (n_samples, n_features_new) 的 ndarray 陣列

轉換後的陣列。

get_feature_names_out(input_features=None)[原始碼]#

根據選定的特徵遮罩特徵名稱。

參數:
input_features字串的類陣列物件或 None,預設值 = None

輸入特徵。

  • 如果 input_featuresNone,則 feature_names_in_ 會用作輸入特徵名稱。如果未定義 feature_names_in_,則會產生以下輸入特徵名稱:["x0", "x1", ..., "x(n_features_in_ - 1)"]

  • 如果 input_features 是類陣列物件,則如果定義了 feature_names_in_input_features 必須符合 feature_names_in_

返回:
feature_names_out字串物件的 ndarray

轉換後的特徵名稱。

get_metadata_routing()[原始碼]#

取得此物件的中繼資料路由。

請查看使用者指南以了解路由機制如何運作。

返回:
routingMetadataRequest

一個封裝路由資訊的 MetadataRequest

get_params(deep=True)[原始碼]#

取得此估算器的參數。

參數:
deepbool,預設值=True

如果為 True,將會傳回此估算器以及包含的子物件(也是估算器)的參數。

返回:
paramsdict

參數名稱對應到它們的值。

get_support(indices=False)[原始碼]#

取得已選取特徵的遮罩或整數索引。

參數:
indicesbool,預設值=False

如果為 True,回傳值將會是整數陣列,而非布林遮罩。

返回:
supportarray

一個索引,從特徵向量中選取保留的特徵。如果 indices 為 False,則這是一個形狀為 [# 輸入特徵] 的布林陣列,其中元素為 True 表示其對應的特徵被選取保留。如果 indices 為 True,則這是一個形狀為 [# 輸出特徵] 的整數陣列,其值為輸入特徵向量的索引。

inverse_transform(X)[原始碼]#

反轉轉換操作。

參數:
X形狀為 [n_samples, n_selected_features] 的陣列

輸入樣本。

返回:
X_r形狀為 [n_samples, n_original_features] 的陣列

X 帶有插入零的列,這些列是在 transform 中會被移除的特徵。

set_output(*, transform=None)[原始碼]#

設定輸出容器。

請參閱介紹 set_output API,以取得如何使用 API 的範例。

參數:
transform{“default”, “pandas”, “polars”},預設值=None

設定 transformfit_transform 的輸出。

  • "default":轉換器的預設輸出格式

  • "pandas":DataFrame 輸出

  • "polars":Polars 輸出

  • None:轉換設定保持不變

1.4 版本新增:新增了 "polars" 選項。

返回:
self估算器實例

估算器實例。

set_params(**params)[原始碼]#

設定此估算器的參數。

此方法適用於簡單的估算器以及巢狀物件(例如 Pipeline)。後者具有 <component>__<parameter> 形式的參數,因此可以更新巢狀物件的每個組件。

參數:
**paramsdict

估算器參數。

返回:
self估算器實例

估算器實例。

transform(X)[原始碼]#

將 X 縮減為選取的特徵。

參數:
X形狀為 [n_samples, n_features] 的陣列

輸入樣本。

返回:
X_r形狀為 [n_samples, n_selected_features] 的陣列

僅包含選取特徵的輸入樣本。