问题描述
我正在尝试使用 parsnip
和 tidymodels
创建节点链接图(决策树)。我正在执行的是使用 tidymodels
包和 rpart
作为模型引擎为 StackOverflow 数据集构建决策树模型。该模型应该根据编程经验的年数 (remote
)、职业满意度 (years_coded_job
)、职位来预测开发人员是否会远程工作(变量 career_satisfaction
)数据科学家”是/否 (data_scientist
),以及雇佣公司的规模 (company_size_number
)。
我的管道
library(tidyverse)
library(tidymodels)
library(rpart.plot)
library(rpart)
library(rattle)
so <- read_rds(here::here("stackoverflow.rds"))
fit <- rpart(remote ~ years_coded_job + career_satisfaction + data_scientist + company_size_number,data = so,control = rpart.control(minsplit = 20,minbucket = 2))
fancyRpartPlot(fit,sub = "")
我得到的情节
我想知道这是否是确定预测变量的正确方法。既然我不是在构建模型,这是正确的方法吗?
解决方法
如果您要使用 tidymodels 和欧洲防风草来拟合您的模型,最好将实际拟合的模型用于任何此类可视化。您可以使用 $fit
从欧洲防风草模型中获取底层引擎对象。
library(tidyverse)
library(tidymodels)
library(rattle)
#> Loading required package: bitops
#> Rattle: A free graphical interface for data science with R.
#> Version 5.4.0 Copyright (c) 2006-2020 Togaware Pty Ltd.
#> Type 'rattle()' to shake,rattle,and roll your data.
data(kyphosis,package = "rpart")
tree_fit <- decision_tree(min_n = 20) %>%
set_engine("rpart") %>%
set_mode("classification") %>%
fit(Kyphosis ~ Age + Number + Start,data = kyphosis)
fancyRpartPlot(tree_fit$fit,sub = "")
由 reprex package (v2.0.0) 于 2021 年 5 月 25 日创建
对于某些类型的可视化,您需要使用 repair_call()
。