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


Python cuml.preprocessing.TargetEncoder.TargetEncoder用法及代碼示例


用法:

class cuml.preprocessing.TargetEncoder.TargetEncoder(n_folds=4, smooth=0, seed=42, split_method='interleaved', output_type='auto')

基於 cudf 的目標編碼實現 [1] ,它將一個或多個分類變量“Xs”與目標變量“Y”的對應值的平均值進行轉換。輸入數據按列 Xs 分組,並計算每個組的 Y 的聚合平均值以替換 Xs 的每個值。應用了一些優化來防止標簽泄漏和並行執行。

參數

n_foldsint(默認=4)

擬合訓練數據的默認折疊數。為了防止 fit 中的標簽泄漏,我們將數據拆分為 n_folds 並使用剩餘折疊的目標變量對一個折疊進行編碼。

smoothint 或浮點數(默認值=0)

用於平滑編碼的樣本計數。 0 表示沒有平滑。

seedint(默認=42)

隨機種子

split_method{‘random’, ‘continuous’, ‘interleaved’},

default='interleaved' 將訓練數據拆分為 n_folds 的方法。 ‘random’:隨機拆分。 ‘continuous’:連續的樣本被分成一個折疊。 ‘interleaved’:樣本以循環方式分配給每個折疊。 ‘customize’:通過提供 fold_ids 數組來自定義拆分

fit()fit_transform() 函數中。

output_type: {‘cupy’, ‘numpy’, ‘auto’}, default = ‘auto’

輸出的數據類型。如果‘auto’,它匹配輸入數據。

參考

1

https://maxhalford.github.io/blog/target-encoding/

例子

將分類實現轉換為數字實現

from cudf import DataFrame, Series

train = DataFrame({'category': ['a', 'b', 'b', 'a'],
                   'label': [1, 0, 1, 1]})
test = DataFrame({'category': ['a', 'c', 'b', 'a']})

encoder = TargetEncoder()
train_encoded = encoder.fit_transform(train.category, train.label)
test_encoded = encoder.transform(test.category)
print(train_encoded)
print(test_encoded)

輸出:

[1. 1. 0. 1.]
[1.   0.75 0.5  1.  ]

相關用法


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