變異數閾值#

class sklearn.feature_selection.VarianceThreshold(threshold=0.0)[來源]#

特徵選擇器,用於移除所有低變異數的特徵。

此特徵選擇演算法僅查看特徵 (X),而不是所需的輸出 (y),因此可用於非監督式學習。

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

參數:
thresholdfloat,預設值 = 0

訓練集變異數低於此閾值的特徵將會被移除。預設是保留所有具有非零變異數的特徵,亦即移除在所有樣本中具有相同值的特徵。

屬性:
variances_陣列,形狀 (n_features,)

個別特徵的變異數。

n_features_in_整數

fit期間看到的特徵數量。

於 0.24 版本新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

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

於 1.0 版本新增。

另請參閱

SelectFromModel

基於重要性權重選擇特徵的元轉換器。

SelectPercentile

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

SequentialFeatureSelector

執行循序特徵選擇的轉換器。

注意事項

允許輸入 NaN。如果 X 中沒有任何特徵符合變異數閾值,則會引發 ValueError。

範例

以下資料集具有整數特徵,其中兩個特徵在每個樣本中都相同。使用預設的閾值設定會移除這些特徵

>>> from sklearn.feature_selection import VarianceThreshold
>>> X = [[0, 2, 0, 3], [0, 1, 4, 3], [0, 1, 1, 3]]
>>> selector = VarianceThreshold()
>>> selector.fit_transform(X)
array([[2, 0],
       [1, 4],
       [1, 1]])
fit(X, y=None)[來源]#

從 X 學習經驗變異數。

參數:
X{類陣列,稀疏矩陣},形狀 (n_samples, n_features)

用於計算變異數的資料,其中 n_samples 是樣本數,而 n_features 是特徵數。

y任何型別,預設=None

忽略。此參數僅為與 sklearn.pipeline.Pipeline 相容而存在。

回傳:
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)[來源]#

取得此估算器的參數。

參數:
deep布林值,預設=True

如果為 True,則將回傳此估算器和所包含的子物件(皆為估算器)的參數。

回傳:
params字典

參數名稱對應至其值的字典。

get_support(indices=False)[來源]#

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

參數:
indices布林值,預設=False

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

回傳:
support陣列

一個索引,用於從特徵向量中選取保留的特徵。如果 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)[原始碼]#

設定輸出容器。

請參閱 Introducing the set_output API 以取得如何使用此 API 的範例。

參數:
transform{"default", "pandas", "polars"}, default=None

設定 transformfit_transform 的輸出。

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

  • "pandas":DataFrame 輸出

  • "polars":Polars 輸出

  • None:轉換配置不變

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

回傳:
self估算器實例

估算器實例。

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

設定此估算器的參數。

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

參數:
**params字典

估算器參數。

回傳:
self估算器實例

估算器實例。

transform(X)[原始碼]#

將 X 縮減至選取的特徵。

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

輸入的樣本。

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

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