step_pca_sparse_bayes()
創建配方步驟的規範,該步驟將數值數據轉換為一個或多個可以具有一些零係數的主成分。
用法
step_pca_sparse_bayes(
recipe,
...,
role = "predictor",
trained = FALSE,
num_comp = 5,
prior_slab_dispersion = 1,
prior_mixture_threshold = 0.1,
options = list(),
res = NULL,
prefix = "PC",
keep_original_cols = FALSE,
skip = FALSE,
id = rand_id("pca_sparse_bayes")
)
參數
- recipe
-
一個菜譜對象。該步驟將添加到此配方的操作序列中。
- ...
-
一個或多個選擇器函數用於選擇將使用哪些變量來計算組件。有關更多詳細信息,請參閱
selections()
。對於tidy
方法,當前未使用這些。 - role
-
對於此步驟創建的模型項,應為其分配什麽分析角色?默認情況下,該函數假定由原始變量創建的新主成分列將用作模型中的預測變量。
- trained
-
指示預處理數量是否已估計的邏輯。
- num_comp
-
保留作為新預測變量的組件數量。如果
num_comp
大於列數或可能組件的數量,則將使用較小的值。如果設置了num_comp = 0
,則不會進行任何轉換,並且所選變量將保持不變,無論keep_original_cols
的值如何。 - prior_slab_dispersion
-
該值與先驗的平板部分的色散(或尺度)參數成正比。較小的值會導致零係數增加。
- prior_mixture_threshold
-
該參數定義了先驗的尖峰和平板分量之間的權衡。增加此參數會增加零係數的數量。
- options
-
VBsparsePCA::VBsparsePCA()
默認方法的選項列表。 - res
-
此預處理步驟經過
prep()
訓練後的旋轉矩陣。 - prefix
-
將作為結果新變量的前綴的字符串。請參閱下麵的注釋。
- keep_original_cols
-
將原始變量保留在輸出中的邏輯。默認為
FALSE
。 - skip
-
一個合乎邏輯的。當
recipes::bake()
烘焙食譜時是否應該跳過此步驟?雖然所有操作都是在recipes::prep()
運行時烘焙的,但某些操作可能無法對新數據進行(例如處理結果變量)。使用skip = TRUE
時應小心,因為它可能會影響後續操作的計算 - id
-
該步驟特有的字符串,用於標識它。
細節
此步驟需要 VBsparsePCA
包。如果未安裝,則在定義步驟時將提示用戶安裝。
spike-and-slab 先驗是兩個先驗的混合。其中一個("spike")的所有質量均為零,表示對 PCA 係數沒有貢獻的變量。另一個先驗是更廣泛的分布,反映了影響 PCA 分析的變量的係數分布。這是"slab"。板越窄,係數越有可能為零(或正則化為更接近零)。這兩個先驗的混合由混合參數控製,該參數本身具有先驗分布和hyper-parameter先驗。
PCA 係數及其結果分數僅在符號範圍內是唯一的。此步驟將嘗試使組件的符號與run-to-run更加一致。然而,稀疏性約束可能會幹擾這一目標。
參數 num_comp
控製將保留的組件數量(用於派生組件的原始變量將從數據中刪除)。新組件的名稱以 prefix
和一係列數字開頭。變量名稱用零填充。例如,如果 num_comp < 10
,它們的名稱將為 PC1
- PC9
。如果是 num_comp = 101
,則名稱將為 PC1
- PC101
。
整理
當您tidy()
此步驟時,將返回包含terms
(選定的選擇器或變量)、value
和component
列的小標題。
調整參數
這一步有3個調整參數:
-
num_comp
: # 組件(類型:整數,默認值:5) -
prior_slab_dispersion
:Slab 先驗的色散(類型:double,默認值:1) -
prior_mixture_threshold
:混合先驗的閾值(類型:double,默認值:0.1)
例子
library(recipes)
library(ggplot2)
data(ad_data, package = "modeldata")
ad_rec <-
recipe(Class ~ ., data = ad_data) %>%
step_zv(all_predictors()) %>%
step_YeoJohnson(all_numeric_predictors()) %>%
step_normalize(all_numeric_predictors()) %>%
step_pca_sparse_bayes(
all_numeric_predictors(),
prior_mixture_threshold = 0.95,
prior_slab_dispersion = 0.05,
num_comp = 3,
id = "sparse bayesian pca"
) %>%
prep()
tidy(ad_rec, id = "sparse bayesian pca") %>%
mutate(value = ifelse(value == 0, NA, value)) %>%
ggplot(aes(x = component, y = terms, fill = value)) +
geom_tile() +
scale_fill_gradient2() +
theme(axis.text.y = element_blank())
相關用法
- R embed step_pca_sparse 稀疏PCA信號提取
- R embed step_pca_truncated 截斷的 PCA 信號提取
- R embed step_umap 有監督和無監督均勻流形逼近和投影 (UMAP)
- R embed step_lencode_glm 使用似然編碼將監督因子轉換為線性函數
- 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_lencode_mixed 使用貝葉斯似然編碼將監督因子轉換為線性函數
- R embed step_embed 將因子編碼到多列中
- R embed step_woe 證據權重變換
- R embed step_discretize_cart 使用 CART 離散數值變量
- R embed step_feature_hash 通過特征哈希創建虛擬變量
- 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等大神的英文原創作品 Sparse Bayesian PCA Signal Extraction。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。