R:用 ml3 库绘制结果

R: plotting results with the ml3 library

我正在使用 R 编程语言。我正在尝试使用“mlr”库从以下 Whosebug post 中复制这些图:R: multiplot for plotLearnerPrediction ggplot objects of MLR firing errors in RStudio

(我也在这里使用这个网站:https://www.analyticsvidhya.com/blog/2016/08/practicing-machine-learning-techniques-in-r-with-mlr-package/

首先,我为这个练习创建了数据(“响应变量”是响应,所有其他变量是预测变量)

 #load libraries
    library(mlr)
    library(girdExtra)
    library(ggplot2)
    library(rpart)
    
    #create data
    
    a = rnorm(1000, 10, 10)
    b = rnorm(1000, 10, 5)
    c = rnorm(1000, 5, 10)
    d <- sample( LETTERS[1:3], 1000, replace=TRUE, prob=c(0.2, 0.6, 0.2) )
    response_variable <- sample( LETTERS[1:2], 1000, replace=TRUE, prob=c(0.3, 0.7) )
    
    data <- data.frame(a, b, c, d, response_variable)
    data$d = as.factor(data$d)
    data$response_variable = as.factor(data$response_variable)

从这里开始,我尝试遵循教程的“mlr”部分(仅使用“决策树”和“随机森林”算法):

task <- makeClassifTask(data = data, target = "response_variable")

learners = list( 
    "classif.randomForest", 
    "classif.rpart" )

p1<-plotLearnerPrediction(learner = learners[[1]], task = task)
p2<-plotLearnerPrediction(learner = learners[[2]], task = task)

谁能告诉我我作为用户制作的情节是否打算这样做?

谢谢

是的,它们是用户打算这样做的。要查看此内容,您可以 运行 对玩具数据执行相同的命令。由此,您将看到分类是正确的。唯一的问题是,在您的数据中,响应与预测变量完全无关,因此分类很糟糕(事实上,它似乎将所有内容都预测为“B”)。

a = rnorm(100, 10, 10)
b = rnorm(100, 10, 5)

data <- data.frame(a, b)
library(dplyr)
data=mutate(data, response_variable=ifelse(a>mean(a) | b<mean(b), "A", "B"))