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


R recipes step_spline_monotone 单调样条


step_spline_monotone() 创建创建单调样条特征的配方步骤的规范。

用法

step_spline_monotone(
  recipe,
  ...,
  role = "predictor",
  trained = FALSE,
  deg_free = 10,
  degree = 3,
  complete_set = TRUE,
  options = NULL,
  keep_original_cols = FALSE,
  results = NULL,
  skip = FALSE,
  id = rand_id("spline_monotone")
)

参数

recipe

一个菜谱对象。该步骤将添加到此配方的操作序列中。

...

一个或多个选择器函数用于为此步骤选择变量。有关更多详细信息,请参阅selections()

role

对于此步骤创建的模型项,应为其分配什么分析角色?默认情况下,此步骤根据原始变量创建的新列将用作模型中的预测变量。

trained

指示预处理数量是否已估计的逻辑。

deg_free

b-spline 的自由度。随着 b-spline 自由度的增加,可以生成更灵活和复杂的曲线。

degree

I-spline 的次数定义为关联的 M-spline 的次数,而不是实际多项式的次数。例如,I-spline 2 阶基定义为关联的 M-spline 2 阶基的积分。

complete_set

如果TRUE,将返回完整的基础矩阵。否则,第一个基础将从输出中排除。这映射到intercept相应函数的参数样条2包并具有相同的默认值。

options

splines2::iSpline() 的选项列表,不应包含 xdfdegreeperiodicintercept

keep_original_cols

将原始变量保留在输出中的逻辑。默认为 FALSE

results

训练步骤后创建的对象列表。

skip

一个合乎逻辑的。当bake() 烘焙食谱时是否应该跳过此步骤?虽然所有操作都是在 prep() 运行时烘焙的,但某些操作可能无法对新数据进行(例如处理结果变量)。使用skip = TRUE时应小心,因为它可能会影响后续操作的计算。

id

该步骤特有的字符串,用于标识它。

具有类 "step_spline_monotone""step" 的对象。

细节

样条变换采用数字列并创建多个特征,当在模型中使用这些特征时,可以估计列和某些结果之间的非线性趋势。自由度决定了向数据添加多少新特征。

这些样条是 M-splines 的积分形式,并且是非负且单调的。这意味着,当与产生非负回归系数的拟合函数一起使用时,所得拟合是单调的。

如果所选列的样条扩展失败,该步骤将删除该列的结果(但将保留原始数据)。使用tidy() 方法确定使用了哪些列。

整理

当您tidy()此步骤时,将返回带有列terms(将受影响的列)的tibble。

调整参数

此步骤有 2 个调整参数:

  • deg_free:样条曲线自由度(类型:整数,默认值:10)

  • degree :多项式次数(类型:整数,默认值:3)

箱重

底层操作不允许使用案例权重。

也可以看看

例子

library(tidyr)
library(dplyr)

library(ggplot2)
data(ames, package = "modeldata")

spline_rec <- recipe(Sale_Price ~ Longitude, data = ames) %>%
  step_spline_monotone(Longitude, deg_free = 6, keep_original_cols = TRUE) %>%
  prep()

tidy(spline_rec, number = 1)
#> # A tibble: 1 × 2
#>   terms     id                   
#>   <chr>     <chr>                
#> 1 Longitude spline_monotone_QEg7v

# Show where each feature is active
spline_rec %>%
  bake(new_data =  NULL,-Sale_Price) %>%
  pivot_longer(c(starts_with("Longitude_")), names_to = "feature", values_to = "value") %>%
  mutate(feature = gsub("Longitude_", "feature ", feature)) %>%
  filter(value > 0) %>%
  ggplot(aes(x = Longitude, y = value)) +
  geom_line() +
  facet_wrap(~ feature)

相关用法


注:本文由纯净天空筛选整理自Max Kuhn等大神的英文原创作品 Monotone Splines。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。