是否可以使用 tidymodels 框架构建 MLP 模型?

dze*_*gpi 2 tidymodels mlp

根据文档,tidymodels 中有三种用于拟合 MLP 模型的引擎,但它们(据我所知)都只能定义一个隐藏层。我是否缺少一些纳入 tidymodels 生态系统的引擎,该引擎可以提供多层(隐藏)层前馈网络?以sklearn.neural_network方式。

Jul*_*lge 6

您可以使用新的 tidymodels 包brulee来完成此操作,它使用torch。您可以一起指定层数和隐藏单元数

hidden_​​units:隐藏单元数量的整数,或整数向量。如果是整数向量,则模型将具有length(hidden_units)每个层都带有隐藏单元的层hidden_units[i]

library(tidymodels)
library(brulee)

data("parabolic")

set.seed(1)
parabolic_split <- initial_split(parabolic)
parabolic_tr <- training(parabolic_split)
parabolic_te <- testing(parabolic_split)

set.seed(2)
cls_fit <- brulee_mlp(
  class ~ ., data = parabolic_tr, 
  ## two layers with 5 hidden units each:
  hidden_units = c(5, 5),
  epochs = 50L, learn_rate = 0.1, batch_size = 2^8
)

grid_points <- seq(-4, 4, length.out = 100)
grid <- crossing(X1 = grid_points, X2 = grid_points)

predict(cls_fit, grid, type = "prob") %>%
  bind_cols(grid) %>%
  ggplot(aes(X1, X2)) +
  geom_contour(aes(z = .pred_Class1), breaks = 1/2, col = "black") +
  geom_point(data = parabolic_te, aes(col = class))
Run Code Online (Sandbox Code Playgroud)

由reprex 包于 2022 年 5 月 22 日创建(v2.0.1)

  • 是的, `brulee_mlp()` 确实适合该模型(与防风草模型不同,但您可以将防风草的 `mlp()` 与 brulee 引擎一起使用)。另外,是的,您可以制作一个像您链接的那样的情节;我可能会使用`geom_raster()`。 (2认同)