step_feature_hash()
已被棄用,取而代之的是 textrecipes::step_dummy_hash()
。此函數創建配方步驟的規範,該配方步驟將使用原始數據的級別將標稱數據(例如字符或因子)轉換為一個或多個數字二進製列。
用法
step_feature_hash(
recipe,
...,
role = "predictor",
trained = FALSE,
num_hash = 2^6,
preserve = deprecated(),
columns = NULL,
keep_original_cols = FALSE,
skip = FALSE,
id = rand_id("feature_hash")
)
參數
- recipe
-
一個菜譜對象。該步驟將添加到此配方的操作序列中。
- ...
-
一個或多個選擇器函數用於為此步驟選擇變量。有關更多詳細信息,請參閱
selections()
。 - role
-
對於此步驟創建的模型項,應為其分配什麽分析角色?默認情況下,此步驟根據原始變量創建的新列將用作模型中的預測變量。
- trained
-
指示預處理數量是否已估計的邏輯。
- num_hash
-
生成的虛擬變量列的數量。
- preserve
-
使用
keep_original_cols
來指定除了新的虛擬變量之外是否還應保留選定的列。 - columns
-
所選列的字符向量。在
recipes::prep()
訓練該步驟之前,這是NULL
。 - keep_original_cols
-
將原始變量保留在輸出中的邏輯。默認為
FALSE
。 - skip
-
一個合乎邏輯的。當
bake()
烘焙食譜時是否應該跳過此步驟?雖然所有操作都是在prep()
運行時烘焙的,但某些操作可能無法對新數據進行(例如處理結果變量)。使用skip = TRUE
時應小心,因為它可能會影響後續操作的計算。 - id
-
該步驟特有的字符串,用於標識它。
細節
step_feature_hash()
將從因子或字符變量創建一組二進製虛擬變量。這些值本身用於確定應分配虛擬變量的行(而不是將該值映射到特定列)。
由於此方法不依賴於預先確定的列水平分配,因此可以毫無問題地將新因子水平添加到所選列。缺失值會導致所有散列列缺失值。
請注意,將級別分配給散列列並不會嘗試最大化分配。列的多個級別可能會映射到相同的散列列(即使是小數據集)。同樣,某些列可能全為零。對於任何使用散列列的配方,建議使用 zero-variance 過濾器(通過 recipes::step_zv()
)。
整理
當您 tidy()
此步驟時,將返回包含 terms
列(選定的列)的 tibble。
參考
Weinberger、K、A Dasgupta、J Langford、A Smola 和 J Attenberg。 2009.“大規模多任務學習的特征哈希”。第 26 屆國際機器學習年會論文集,1113-20。 ACM。
Kuhn 和 Johnson (2020) 特征工程和選擇:預測模型的實用方法。 CRC/查普曼廳https://bookdown.org/max/FES/encoding-predictors-with-many-categories.html
例子
data(grants, package = "modeldata")
rec <-
recipe(class ~ sponsor_code, data = grants_other) %>%
step_feature_hash(
sponsor_code,
num_hash = 2^6, keep_original_cols = TRUE
) %>%
prep()
#> Warning: `step_feature_hash()` was deprecated in embed 0.2.0.
#> ℹ Please use `textrecipes::step_dummy_hash()` instead.
# How many of the 298 locations ended up in each hash column?
results <-
bake(rec, new_data = NULL, starts_with("sponsor_code")) %>%
distinct()
apply(results %>% select(-sponsor_code), 2, sum) %>% table()
#> .
#> 0 1 2 3 4 5 6 7 8 9
#> 1 1 5 16 14 8 7 6 2 4
相關用法
- R embed step_umap 有監督和無監督均勻流形逼近和投影 (UMAP)
- R embed step_pca_truncated 截斷的 PCA 信號提取
- R embed step_lencode_glm 使用似然編碼將監督因子轉換為線性函數
- R embed step_pca_sparse 稀疏PCA信號提取
- R embed step_lencode_bayes 使用貝葉斯似然編碼將監督因子轉換為線性函數
- R embed step_collapse_stringdist 使用 stringdist 的折疊因子級別
- R embed step_collapse_cart 因子水平的監督崩潰
- R embed step_discretize_xgb 使用 XgBoost 離散數值變量
- R embed step_pca_sparse_bayes 稀疏貝葉斯 PCA 信號提取
- R embed step_lencode_mixed 使用貝葉斯似然編碼將監督因子轉換為線性函數
- R embed step_embed 將因子編碼到多列中
- R embed step_woe 證據權重變換
- R embed step_discretize_cart 使用 CART 離散數值變量
- R embed dictionary 證據權重詞典
- R embed is_tf_available 測試一下tensorflow是否可用
- R embed add_woe 在 DataFrame 中添加 WoE
- R SparkR eq_null_safe用法及代碼示例
- R SparkR except用法及代碼示例
- R SparkR explain用法及代碼示例
- R SparkR exceptAll用法及代碼示例
- R dtrMatrix-class 三角形稠密數值矩陣
- R vcov.gam 從 GAM 擬合中提取參數(估計器)協方差矩陣
- R gam.check 擬合 gam 模型的一些診斷
- R ggplot2 annotation_logticks 注釋:記錄刻度線
- R matrix轉list用法及代碼示例
注:本文由純淨天空篩選整理自Max Kuhn等大神的英文原創作品 Dummy Variables Creation via Feature Hashing。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。