二值化器#

class sklearn.preprocessing.Binarizer(*, threshold=0.0, copy=True)[原始碼]#

根據閾值將資料二值化(將特徵值設定為 0 或 1)。

大於閾值的值對應到 1,而小於或等於閾值的值對應到 0。使用預設閾值 0,只有正值對應到 1。

二值化是文本計數資料的常見操作,分析師可以決定只考慮特徵是否存在,而不是量化的出現次數。

它也可以用作考慮布林隨機變數的估計器的預處理步驟(例如,在貝氏設定中使用白努利分佈建模)。

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

參數:
thresholdfloat,預設值為 0.0

小於或等於此值的特徵值將被 0 取代,大於此值的則被 1 取代。對稀疏矩陣操作時,閾值不得小於 0。

copybool,預設值為 True

設定為 False 以執行原地二值化並避免複製(如果輸入已經是 numpy 陣列或 scipy.sparse CSR 矩陣)。

屬性:
n_features_in_int

fit 期間看到的特徵數量。

在 0.24 版本中新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

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

在 1.0 版本中新增。

另請參閱

二值化 (binarize)

不使用估計器 API 的等效函式。

KBinsDiscretizer

將連續資料放入間隔中。

OneHotEncoder

將類別特徵編碼為單熱數值陣列。

注意事項

如果輸入是稀疏矩陣,則只有非零值會受到 Binarizer 類別的更新。

此估計器是無狀態的,因此不需要擬合。但是,我們建議呼叫 fit_transform 而不是 transform,因為參數驗證僅在 fit 中執行。

範例

>>> from sklearn.preprocessing import Binarizer
>>> X = [[ 1., -1.,  2.],
...      [ 2.,  0.,  0.],
...      [ 0.,  1., -1.]]
>>> transformer = Binarizer().fit(X)  # fit does nothing.
>>> transformer
Binarizer()
>>> transformer.transform(X)
array([[1., 0., 1.],
       [1., 0., 0.],
       [0., 1., 0.]])
fit(X, y=None)[原始碼]#

僅驗證估計器的參數。

此方法允許:(i)驗證估計器的參數和(ii)與 scikit-learn 轉換器 API 一致。

參數:
X形狀為 (n_samples, n_features) 的 {array-like, sparse matrix}

資料。

yNone

忽略。

傳回值:
selfobject

已擬合的轉換器。

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

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

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

參數:
X形狀為 (n_samples, n_features) 的 array-like

輸入樣本。

y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的 array-like,預設值為 None

目標值(無監督轉換為 None)。

**fit_paramsdict

其他擬合參數。

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

轉換後的陣列。

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

取得轉換的輸出特徵名稱。

參數:
input_featuresstr 或 None 的 array-like,預設值為 None

輸入特徵。

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

  • 如果 input_features 是 array-like,則如果 feature_names_in_ 已定義,則 input_features 必須與 feature_names_in_ 相符。

傳回值:
feature_names_outstr 物件的 ndarray

與輸入特徵相同。

get_metadata_routing()[原始碼]#

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

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

傳回值:
routingMetadataRequest

封裝路由資訊的MetadataRequest

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

取得此估計器的參數。

參數:
deepbool,預設值為 True

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

傳回值:
paramsdict

對應到其值的參數名稱。

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估算器實例

估算器實例。

set_transform_request(*, copy: bool | None | str = '$UNCHANGED$') Binarizer[原始碼]#

請求傳遞至 transform 方法的中繼資料。

請注意,此方法僅在 enable_metadata_routing=True 時相關(請參閱 sklearn.set_config)。請參閱關於路由機制如何運作的 使用者指南

每個參數的選項為:

  • True:請求中繼資料,並在提供時傳遞至 transform。如果未提供中繼資料,則會忽略該請求。

  • False:不請求中繼資料,且元估算器不會將其傳遞至 transform

  • None:不請求中繼資料,如果使用者提供中繼資料,元估算器將會引發錯誤。

  • str:中繼資料應該使用此給定的別名而不是原始名稱傳遞至元估算器。

預設值(sklearn.utils.metadata_routing.UNCHANGED)會保留現有的請求。這讓您可以變更某些參數的請求,而其他參數則不變更。

於 1.3 版本新增。

注意

此方法僅在此估算器用作元估算器的子估算器時才相關,例如在 Pipeline 內部使用。否則,它沒有任何作用。

參數:
copystr、True、False 或 None,預設值 = sklearn.utils.metadata_routing.UNCHANGED

transform 中,針對 copy 參數的中繼資料路由。

傳回值:
selfobject

更新後的物件。

transform(X, copy=None)[原始碼]#

二值化 X 的每個元素。

參數:
X形狀為 (n_samples, n_features) 的 {array-like, sparse matrix}

要逐元素二值化的資料。scipy.sparse 矩陣應該是 CSR 格式,以避免不必要的複製。

copybool

是否複製輸入 X。

傳回值:
X_tr{ndarray, sparse matrix} 尺寸為 (n_samples, n_features)

轉換後的陣列。