R 中使用 Rpart.plot 和rattle 的节点链接图

问题描述

我正在尝试使用 parsniptidymodels 创建节点链接图(决策树)。我正在执行的是使用 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 = "")

我得到的情节

plot

我想知道这是否是确定预测变量的正确方法。既然我不是在构建模型,这是正确的方法吗?

解决方法

如果您要使用 和欧洲防风草来拟合您的模型,最好将实际拟合的模型用于任何此类可视化。您可以使用 $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()

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...