step_umap()
创建配方步骤的规范,将一组函数投射到更小的空间中。
用法
step_umap(
recipe,
...,
role = "predictor",
trained = FALSE,
outcome = NULL,
neighbors = 15,
num_comp = 2,
min_dist = 0.01,
metric = "euclidean",
learn_rate = 1,
epochs = NULL,
options = list(verbose = FALSE, n_threads = 1),
seed = sample(10^5, 2),
prefix = "UMAP",
keep_original_cols = FALSE,
retain = deprecated(),
object = NULL,
skip = FALSE,
id = rand_id("umap")
)
参数
- recipe
-
一个菜谱对象。该步骤将添加到此配方的操作序列中。
- ...
-
一个或多个选择器函数用于为此步骤选择变量。有关更多详细信息,请参阅
selections()
。 - role
-
对于此步骤创建的模型项,应为其分配什么分析角色?默认情况下,此步骤根据原始变量创建的新列将用作模型中的预测变量。
- trained
-
指示预处理数量是否已估计的逻辑。
- outcome
-
调用
vars
以指定哪个变量用作编码过程的结果(如果有)。 - neighbors
-
用于构造目标单纯形集的最近邻数的整数。如果
neighbors
大于数据点数,则使用较小的值。 - num_comp
-
UMAP 组件数量的整数。如果
num_comp
大于所选列的数量减一,则使用较小的值。 - min_dist
-
嵌入点之间的有效最小距离。
- metric
-
字符,用于查找最近邻居的距离度量类型。有关更多详细信息,请参阅
uwot::umap()
。默认为"euclidean"
。 - learn_rate
-
优化过程的学习率的正数。
- epochs
-
邻居优化的迭代次数。有关更多详细信息,请参阅
uwot::umap()
。 - options
-
要传递给
uwot::umap()
的选项列表。不应在此处传递参数X
、n_neighbors
、n_components
、min_dist
、n_epochs
、ret_model
和learning_rate
。默认情况下,设置verbose
和n_threads
。 - seed
-
用于控制数值方法使用的随机数的两个整数。默认值从主会话的数字流中提取,如果在调用
prep()
或bake()
之前设置种子,则将给出可重现的结果。 - prefix
-
生成的新变量的前缀字符串。请参阅下面的注释。
- keep_original_cols
-
将原始变量保留在输出中的逻辑。默认为
FALSE
。 - retain
-
使用
keep_original_cols
来指定是否应与新的嵌入变量一起保留原始预测变量。 - object
-
定义编码的对象。在
recipes::prep()
训练该步骤之前,这是NULL
。 - skip
-
一个合乎逻辑的。当
bake()
烘焙食谱时是否应该跳过此步骤?虽然所有操作都是在prep()
运行时烘焙的,但某些操作可能无法对新数据进行(例如处理结果变量)。使用skip = TRUE
时应小心,因为它可能会影响后续操作的计算。 - id
-
该步骤特有的字符串,用于标识它。
细节
UMAP 是统一流形逼近和投影的缩写,是一种非线性降维技术,可找到数据的局部低维表示。它可以在无人监督的情况下运行,也可以使用不同类型的结果数据(例如数字、因子等)进行监督。
参数 num_comp
控制将保留的组件数量(用于派生组件的原始变量将从数据中删除)。新组件的名称以 prefix
和一系列数字开头。变量名称用零填充。例如,如果 num_comp < 10
,它们的名称将为 UMAP1
- UMAP9
。如果是 num_comp = 101
,则名称将为 UMAP1
- UMAP101
。
整理
当您tidy()
此步骤时,将返回包含列terms
(选择的选择器或变量)的tibble。
调整参数
此步骤有 5 个调整参数:
-
num_comp
: # 组件(类型:整数,默认值:2) -
neighbors
: # 最近邻居(类型:整数,默认值:15) -
min_dist
:点之间的最小距离(类型:double,默认值:0.01) -
learn_rate
:学习率(类型:double,默认值:1) -
epochs
: # Epochs(类型:整数,默认值:NULL)
保存准备好的配方对象
当保存以供另一个 R 会话使用时,此配方步骤可能需要本机序列化。要了解有关准备菜谱序列化的更多信息,请参阅bundle 包。
参考
麦金尼斯,L.,&希利,J.(2018)。 UMAP:统一流形逼近和降维投影。 https://arxiv.org/abs/1802.03426。
“UMAP 的工作原理”https://umap-learn.readthedocs.io/en/latest/how_umap_works.html
例子
library(recipes)
library(ggplot2)
split <- seq.int(1, 150, by = 9)
tr <- iris[-split, ]
te <- iris[split, ]
set.seed(11)
supervised <-
recipe(Species ~ ., data = tr) %>%
step_center(all_predictors()) %>%
step_scale(all_predictors()) %>%
step_umap(all_predictors(), outcome = vars(Species), num_comp = 2) %>%
prep(training = tr)
theme_set(theme_bw())
bake(supervised, new_data = te, Species, starts_with("umap")) %>%
ggplot(aes(x = UMAP1, y = UMAP2, col = Species)) +
geom_point(alpha = .5)
相关用法
- 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 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等大神的英文原创作品 Supervised and unsupervised uniform manifold approximation and projection (UMAP)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。