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 必須支援 fit 和 transform。特殊大小寫字串 ‘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 必須支援 fit 和 transform。- 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'])])