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


R recipes step_pls 偏最小二乘特征提取


step_pls() 創建配方步驟的規範,該步驟將數值數據轉換為一個或多個新維度。

用法

step_pls(
  recipe,
  ...,
  role = "predictor",
  trained = FALSE,
  num_comp = 2,
  predictor_prop = 1,
  outcome = NULL,
  options = list(scale = TRUE),
  preserve = deprecated(),
  res = NULL,
  columns = NULL,
  prefix = "PLS",
  keep_original_cols = FALSE,
  skip = FALSE,
  id = rand_id("pls")
)

參數

recipe

一個菜譜對象。該步驟將添加到此配方的操作序列中。

...

一個或多個選擇器函數用於為此步驟選擇變量。有關更多詳細信息,請參閱selections()

role

對於此步驟創建的模型項,應為其分配什麽分析角色?默認情況下,此步驟根據原始變量創建的新列將用作模型中的預測變量。

trained

指示預處理數量是否已估計的邏輯。

num_comp

保留作為新預測變量的組件數量。如果num_comp大於列數或可能組件的數量,則將使用較小的值。如果設置了 num_comp = 0 ,則不會進行任何轉換,並且所選變量將保持不變,無論 keep_original_cols 的值如何。

predictor_prop

每個 PLS 分量可以具有非零係數的原始預測變量的最大數量(通過正則化)。

outcome

當單個結果可用時,可以使用字符串或對 dplyr::vars() 的調用來指定單個結果變量。

options

mixOmics::pls()mixOmics::spls()mixOmics::plsda()mixOmics::splsda() 的選項列表(取決於數據和參數)。

preserve

使用 keep_original_cols 來指定是否應與新特征一起保留原始預測變量數據。

res

一旦 prep() 訓練了這個預處理步驟,結果列表就會存儲在此處。

columns

所選變量名稱的字符串。該字段是一個占位符,一旦使用 prep() 就會被填充。

prefix

生成的新變量的前綴字符串。請參閱下麵的注釋。

keep_original_cols

將原始變量保留在輸出中的邏輯。默認為 FALSE

skip

一個合乎邏輯的。當bake() 烘焙食譜時是否應該跳過此步驟?雖然所有操作都是在 prep() 運行時烘焙的,但某些操作可能無法對新數據進行(例如處理結果變量)。使用skip = TRUE時應小心,因為它可能會影響後續操作的計算。

id

該步驟特有的字符串,用於標識它。

recipe 的更新版本,將新步驟添加到任何現有操作的序列中。

細節

PLS 是主成分分析的監督版本,需要結果數據來計算新特征。

此步驟需要 Bioconductor混合組學包。如果未安裝,該步驟將停止並顯示有關安裝包的注釋。

參數 num_comp 控製將保留的組件數量(用於派生組件的原始變量將從數據中刪除)。新組件的名稱以 prefix 和一係列數字開頭。變量名稱用零填充。例如,如果 num_comp < 10 ,它們的名稱將為 PLS1 - PLS9 。如果是 num_comp = 101 ,則名稱將為 PLS1 - PLS101

可以使用 predictor_prop 參數來鼓勵稀疏性。這會影響每個 PLS 分量,並指示每個分量中具有非零係數的預測變量的最大比例。 step_pls() 轉換此比例以確定 mixOmics::spls()mixOmics::splsda() 中的 keepX 參數。有關詳細信息,請參閱mixOmics::spls() 中的引用。

整理

tidy() 方法返回通常定義為的係數

W(P'W)^{-1}

(參見下麵的維基百科文章)

當應用於數據時,這些值通常按column-specific範數縮放。 tidy() 方法將相同的範數應用於上麵顯示的係數。當您 tidy() 此步驟時,將返回包含 terms (選定的選擇器或變量)、 componentsvalues 列的 tibble。

調整參數

此步驟有 2 個調整參數:

  • num_comp : # 組件(類型:整數,默認值:2)

  • predictor_prop:預測變量的比例(類型:double,默認值:1)

箱重

底層操作不允許使用案例權重。

參考

https://en.wikipedia.org/wiki/Partial_least_squares_regression

Rohart F、Gautier B、Singh A、Lê Cao K-A (2017) mixOmics:用於“組學特征選擇和多數據集成”的 R 包。 PLoS 計算機生物學 13(11):e1005752。 doi:10.1371/journal.pcbi.1005752

例子

# requires the Bioconductor mixOmics package
data(biomass, package = "modeldata")

biom_tr <-
  biomass %>%
  dplyr::filter(dataset == "Training") %>%
  dplyr::select(-dataset, -sample)
biom_te <-
  biomass %>%
  dplyr::filter(dataset == "Testing") %>%
  dplyr::select(-dataset, -sample, -HHV)

dense_pls <-
  recipe(HHV ~ ., data = biom_tr) %>%
  step_pls(all_numeric_predictors(), outcome = "HHV", num_comp = 3)

sparse_pls <-
  recipe(HHV ~ ., data = biom_tr) %>%
  step_pls(all_numeric_predictors(), outcome = "HHV", num_comp = 3, predictor_prop = 4 / 5)

## -----------------------------------------------------------------------------
## PLS discriminant analysis

data(cells, package = "modeldata")

cell_tr <-
  cells %>%
  dplyr::filter(case == "Train") %>%
  dplyr::select(-case)
cell_te <-
  cells %>%
  dplyr::filter(case == "Test") %>%
  dplyr::select(-case, -class)

dense_plsda <-
  recipe(class ~ ., data = cell_tr) %>%
  step_pls(all_numeric_predictors(), outcome = "class", num_comp = 5)

sparse_plsda <-
  recipe(class ~ ., data = cell_tr) %>%
  step_pls(all_numeric_predictors(), outcome = "class", num_comp = 5, predictor_prop = 1 / 4)
源代碼:R/pls.R

相關用法


注:本文由純淨天空篩選整理自Max Kuhn等大神的英文原創作品 Partial Least Squares Feature Extraction。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。