本文簡要介紹python語言中 sklearn.compose.ColumnTransformer
的用法。
用法:
class sklearn.compose.ColumnTransformer(transformers, *, remainder='drop', sparse_threshold=0.3, n_jobs=None, transformer_weights=None, verbose=False, verbose_feature_names_out=True)
將轉換器應用於數組或 pandas DataFrame 的列。
該估計器允許單獨轉換輸入的不同列或列子集,並且每個轉換器生成的特征將連接起來形成單個特征空間。這對於異構或列數據很有用,可以將多個特征提取機製或轉換組合到單個轉換器中。
在用戶指南中閱讀更多信息。
- transformers:元組列表
(名稱、轉換器、列)元組列表,指定要應用於數據子集的轉換器對象。
- 名字:str
就像在 Pipeline 和 FeatureUnion 中一樣,這允許使用
set_params
設置轉換器及其參數並在網格搜索中進行搜索。- transformer:{‘drop’, ‘passthrough’} 或估算器
估算器必須支持擬合和變換。 Special-cased 字符串 ‘drop’ 和 ‘passthrough’ 也被接受,分別指示刪除列或將它們傳遞給未轉換的列。
- 列:str、str 的類似數組、int、int 的類似數組、bool、slice 或 callable 的類似數組
在第二個軸上索引數據。整數被解釋為位置列,而字符串可以按名稱引用 DataFrame 列。當
transformer
期望 X 是一個一維數組(向量)時,應該使用標量字符串或 int,否則一個二維數組將被傳遞給轉換器。可調用對象傳遞輸入數據X
,並且可以返回上述任何數據。要按名稱或數據類型選擇多個列,可以使用make_column_selector
。
- remainder:{‘drop’, ‘passthrough’} 或估計器,默認='drop'
默認情況下,隻有
transformers
中的指定列在輸出中進行轉換和組合,而未指定的列將被刪除。 (默認為'drop'
)。通過指定remainder='passthrough'
,將自動傳遞所有未在transformers
中指定的剩餘列。該列子集與轉換器的輸出連接。通過將remainder
設置為估計器,其餘未指定的列將使用remainder
估計器。估計器必須支持擬合和變換。請注意,使用此函數需要 DataFrame 列輸入 fit 和 transform 具有相同的順序。- sparse_threshold:浮點數,默認=0.3
如果不同轉換器的輸出包含稀疏矩陣,如果整體密度低於此值,則這些將堆疊為稀疏矩陣。使用
sparse_threshold=0
始終返回密集。當轉換後的輸出由所有密集數據組成時,堆疊的結果將是密集的,該關鍵字將被忽略。- n_jobs:整數,默認=無
並行運行的作業數。
None
表示 1,除非在joblib.parallel_backend
上下文中。-1
表示使用所有處理器。有關詳細信息,請參閱詞匯表。- transformer_weights:字典,默認=無
每個轉換器的特征的乘法權重。轉換器的輸出乘以這些權重。鍵是轉換器名稱,值是權重。
- verbose:布爾,默認=假
如果為 True,則在安裝每個轉換器時經過的時間將在完成時打印。
- verbose_feature_names_out:布爾,默認=真
如果為 True,
get_feature_names_out
將在所有特征名稱前加上生成該特征的轉換器名稱。如果為 False,get_feature_names_out
將不會為任何函數名稱添加前綴,並且如果函數名稱不唯一,則會出錯。
- transformers_:列表
已安裝轉換器的集合,作為(名稱、fitted_transformer、列)的元組。
fitted_transformer
可以是估計器、‘drop’ 或 ‘passthrough’。如果沒有選擇任何列,則這將是未安裝的轉換器。如果還有剩餘列,則最終元素是以下形式的元組:(‘remainder’、transformer、remaining_columns),對應於remainder
參數。如果還有剩餘列,則為len(transformers_)==len(transformers)+1
,否則為len(transformers_)==len(transformers)
。named_transformers_
sklearn.utils.Bunch按名稱訪問已安裝的轉換器。
- sparse_output_:bool
指示
transform
的輸出是稀疏矩陣還是密集 numpy 數組的布爾標誌,這取決於各個轉換器的輸出和sparse_threshold
關鍵字。- output_indices_:dict
從每個轉換器名稱到切片的字典,其中切片對應於轉換後的輸出中的索引。這對於檢查哪個轉換器負責哪個轉換特征很有用。
- n_features_in_:int
擬合期間看到的特征數。僅當底層轉換器在合適時公開此類屬性時才定義。
參數:
屬性:
注意:
轉換後的特征矩陣中列的順序遵循
transformers
列表中列的指定順序。除非在passthrough
關鍵字中指定,否則未指定的原始特征矩陣的列將從生成的轉換特征矩陣中刪除。用passthrough
指定的那些列被添加到轉換器輸出的右側。例子:
>>> import numpy as np >>> from sklearn.compose import ColumnTransformer >>> from sklearn.preprocessing import Normalizer >>> ct = ColumnTransformer( ... [("norm1", Normalizer(norm='l1'), [0, 1]), ... ("norm2", Normalizer(norm='l1'), slice(2, 4))]) >>> X = np.array([[0., 1., 2., 2.], ... [1., 1., 0., 1.]]) >>> # Normalizer scales each row of X to unit norm. A separate scaling >>> # is applied for the two first and two last elements of each >>> # row independently. >>> ct.fit_transform(X) array([[0. , 1. , 0.5, 0.5], [0.5, 0.5, 0. , 1. ]])
相關用法
- Python sklearn ConfusionMatrixDisplay.from_predictions用法及代碼示例
- Python sklearn ComplementNB用法及代碼示例
- Python sklearn CountVectorizer用法及代碼示例
- Python sklearn ConfusionMatrixDisplay用法及代碼示例
- Python sklearn CompoundKernel用法及代碼示例
- Python sklearn ConstantKernel用法及代碼示例
- Python sklearn ConfusionMatrixDisplay.from_estimator用法及代碼示例
- Python sklearn CalibrationDisplay.from_predictions用法及代碼示例
- Python sklearn ClassifierChain用法及代碼示例
- Python sklearn CategoricalNB用法及代碼示例
- Python sklearn CalibrationDisplay.from_estimator用法及代碼示例
- Python sklearn CalibrationDisplay用法及代碼示例
- Python sklearn CalibratedClassifierCV用法及代碼示例
- Python sklearn CCA用法及代碼示例
- Python sklearn jaccard_score用法及代碼示例
- Python sklearn WhiteKernel用法及代碼示例
- Python sklearn VotingRegressor用法及代碼示例
- Python sklearn gen_batches用法及代碼示例
- Python sklearn ExpSineSquared用法及代碼示例
- Python sklearn MDS用法及代碼示例
- Python sklearn adjusted_rand_score用法及代碼示例
- Python sklearn MLPClassifier用法及代碼示例
- Python sklearn train_test_split用法及代碼示例
- Python sklearn RandomTreesEmbedding用法及代碼示例
- Python sklearn GradientBoostingRegressor用法及代碼示例
注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.compose.ColumnTransformer。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。