當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python dask_ml.compose.ColumnTransformer用法及代碼示例

用法:

class dask_ml.compose.ColumnTransformer(transformers, remainder='drop', sparse_threshold=0.3, n_jobs=1, transformer_weights=None, preserve_dataframe=True)

將轉換器應用於數組或 pandas DataFrame 的列。

實驗性:某些行為可能會在版本之間發生變化而不會棄用。

此估計器允許單獨轉換輸入的不同列或列子集,並將結果組合到單個特征空間中。這對於異構或列數據很有用,可以將多個特征提取機製或轉換組合到單個轉換器中。

在用戶指南中閱讀更多信息。

注意

這需要scikit-learn 0.20.0 或更高版本。

參數

transformers元組列表

(名稱、轉換器、列)元組列表,指定要應用於數據子集的轉換器對象。

姓名string

就像在 Pipeline 和 FeatureUnion 中一樣,這允許使用 set_params 設置轉換器及其參數並在網格搜索中進行搜索。

transformer估計器或 {‘passthrough’, ‘drop’}

估算器必須支持 fittransform 。 Special-cased 字符串 ‘drop’ and ‘passthrough’ 也被接受,分別表示刪除列或將它們傳遞給未轉換的列。

列)string or int, array-like of string or int, slice, boolean mask array or callable

在其第二個軸上索引數據。整數被解釋為位置列,而字符串可以按名稱引用 DataFrame 列。如果transformer 期望 X 是一維 array-like(向量),則應使用標量字符串或整數,否則將向轉換器傳遞一個二維數組。可調用對象傳遞輸入數據X,並且可以返回上述任何內容。

remainder{‘drop’, ‘passthrough’} 或估計器,默認 ‘drop’

默認情況下,隻有 transformers 中的指定列在輸出中進行轉換和組合,而未指定的列將被刪除。 (默認為 'drop' )。通過指定 remainder='passthrough' ,將自動傳遞所有未在 transformers 中指定的剩餘列。該列子集與轉換器的輸出連接。通過將remainder 設置為估計器,其餘未指定的列將使用remainder 估計器。估計器必須支持 fittransform

sparse_threshold浮點數,默認 = 0.3

如果轉換後的輸出包含稀疏和密集數據的混合,如果密度低於此值,它將被堆疊為稀疏矩陣。使用 sparse_threshold=0 始終返回密集。當轉換後的輸出由所有稀疏或所有密集數據組成時,堆疊結果將分別為稀疏或密集,該關鍵字將被忽略。

n_jobs整數或無,可選(默認=無)

並行運行的作業數。 None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有處理器。有關詳細信息,請參閱詞匯表。

transformer_weights字典,可選

每個轉換器的特征的乘法權重。轉換器的輸出乘以這些權重。鍵是轉換器名稱,值是權重。

preserve_dataframe布爾,(默認=真)

連接結果時是否保留 pandas DataFrames。

警告

保留 DataFrame 的默認行為與 scikit-learn 的當前行為不同。如果需要確保輸出與scikit-learn 的 ColumnTransformer 匹配,請設置 preserve_dataframe=False

屬性

transformers_列表

作為(名稱,fitted_transformer,列)的元組的擬合轉換器的集合。 fitted_transformer 可以是估計器,‘drop’, or ‘passthrough’。如果還有剩餘的列,則最後一個元素是形式的元組:(‘remainder’,transformer,remaining_columns)對應於remainder參數。如果還有剩餘的列,則 len(transformers_)==len(transformers)+1 ,否則 len(transformers_)==len(transformers)

named_transformers_Bunch 對象,具有屬性訪問權限的字典

按名稱訪問已安裝的轉換器。

sparse_output_布爾值

指示 transform 的輸出是稀疏矩陣還是密集 numpy 數組的布爾標誌,這取決於各個轉換器的輸出和 sparse_threshold 關鍵字。

注意

轉換後的特征矩陣中列的順序遵循 transformers 列表中列的指定順序。除非在 passthrough 關鍵字中指定,否則未指定的原始特征矩陣的列將從生成的轉換特征矩陣中刪除。用passthrough 指定的那些列被添加到轉換器輸出的右側。

例子

>>> from dask_ml.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. ]])

相關用法


注:本文由純淨天空篩選整理自dask.org大神的英文原創作品 dask_ml.compose.ColumnTransformer。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。