make_column_transformer#

sklearn.compose.make_column_transformer(*transformers, remainder='drop', sparse_threshold=0.3, n_jobs=None, verbose=False, verbose_feature_names_out=True, force_int_remainder_cols=True)[來源]#

從給定的轉換器建構 ColumnTransformer。

這是 ColumnTransformer 建構函式的簡寫;它不需要也不允許命名轉換器。相反地,它們將根據其類型自動給予名稱。它也不允許使用 transformer_weights 進行加權。

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

參數:
*transformers元組

形式為 (transformer, columns) 的元組,指定要應用於資料子集的轉換器物件。

transformer{‘drop’, ‘passthrough’} 或 estimator

Estimator 必須支援 fittransform。特殊大小寫字串 ‘drop’ 和 ‘passthrough’ 也被接受,分別表示捨棄欄位或使其保持未轉換。

columnsstr、str 的類陣列、int、int 的類陣列、切片、bool 的類陣列或可呼叫物件

在第二個軸上索引資料。整數被解釋為位置欄位,而字串可以通過名稱引用 DataFrame 欄位。當 transformer 期望 X 為一維類陣列(向量)時,應使用純量字串或 int,否則將把二維陣列傳遞給轉換器。可呼叫物件會傳遞輸入資料 X,並且可以傳回上述任何一種。若要依名稱或 dtype 選取多個欄位,可以使用 make_column_selector

remainder{‘drop’, ‘passthrough’} 或 estimator,預設值為 ‘drop’

預設情況下,只有在 transformers 中指定的欄位會被轉換並組合在輸出中,而未指定的欄位會被捨棄。(預設值為 'drop')。通過指定 remainder='passthrough',所有在 transformers 中未指定的剩餘欄位會自動通過。這個欄位子集會與轉換器的輸出串連。通過將 remainder 設定為 estimator,剩餘的未指定欄位將會使用 remainder estimator。Estimator 必須支援 fittransform

sparse_thresholdfloat,預設值為 0.3

如果轉換後的輸出包含稀疏和密集資料的混合,則當密度低於此值時,它將堆疊為稀疏矩陣。使用 sparse_threshold=0 始終傳回密集矩陣。當轉換後的輸出包含所有稀疏或所有密集資料時,堆疊結果將分別為稀疏或密集,並且會忽略此關鍵字。

n_jobsint,預設值為 None

要平行執行的作業數。除非在 joblib.parallel_backend 環境中,否則 None 表示 1。-1 表示使用所有處理器。請參閱 詞彙表 以取得更多詳細資訊。

verbosebool,預設值為 False

如果為 True,則在完成每個轉換器的擬合時,會列印所經過的時間。

verbose_feature_names_outbool,預設值為 True

如果為 True,ColumnTransformer.get_feature_names_out 將會以產生該特徵的轉換器的名稱為所有特徵名稱加上前綴。如果為 False,ColumnTransformer.get_feature_names_out 將不會為任何特徵名稱加上前綴,如果特徵名稱不唯一,則會發生錯誤。

在 1.0 版本中新增。

force_int_remainder_colsbool,預設值為 True

強制將 transformers_ 最後一個項目(對應於「remainder」轉換器)的欄位始終儲存為索引 (int) 而不是欄位名稱 (str)。如需詳細資訊,請參閱 ColumnTransformer.transformers_ 屬性的描述。

注意

如果您未存取 ColumnTransformer.transformers_ 擬合屬性中剩餘欄位的欄位清單,則不需要設定此參數。

在 1.5 版本中新增。

在 1.7 版本中變更:force_int_remainder_cols 的預設值將在 1.7 版本中從 True 變更為 False

傳回值:
ctColumnTransformer

傳回 ColumnTransformer 物件。

另請參閱

ColumnTransformer

允許將用於資料欄位子集的多個轉換器物件的輸出組合到單一特徵空間中的類別。

範例

>>> from sklearn.preprocessing import StandardScaler, OneHotEncoder
>>> from sklearn.compose import make_column_transformer
>>> make_column_transformer(
...     (StandardScaler(), ['numerical_column']),
...     (OneHotEncoder(), ['categorical_column']))
ColumnTransformer(transformers=[('standardscaler', StandardScaler(...),
                                 ['numerical_column']),
                                ('onehotencoder', OneHotEncoder(...),
                                 ['categorical_column'])])