当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。