R'中的损失矩阵;s包rpart

R'中的损失矩阵;s包rpart,r,rpart,R,Rpart,试图理解loss参数在R中的rpart包中是如何工作的 看看这个例子: 它告诉我,输入成本矩阵时,单元格中的误分类成本最高,这是最不需要的预测 这对我来说很有意义,因为我们希望分类器能够预测错误分类成本很低的类。然而,当我尝试运行一个具有极端成本矩阵的简单树时,我看到的结果与我预期的相反 df是泰坦尼克号数据集 library(rpart) library(rpart.plot) df <- df[, c("Survived", "Pclass", "Sex", "Age", "SibS

试图理解loss参数在R中的rpart包中是如何工作的

看看这个例子: 它告诉我,输入成本矩阵时,单元格中的误分类成本最高,这是最不需要的预测

这对我来说很有意义,因为我们希望分类器能够预测错误分类成本很低的类。然而,当我尝试运行一个具有极端成本矩阵的简单树时,我看到的结果与我预期的相反

df是泰坦尼克号数据集

library(rpart)
library(rpart.plot)

df <- df[, c("Survived", "Pclass", "Sex", "Age", "SibSp", "Parch", "Fare", "Embarked")]


loss_matr <- matrix(c(0, 1000000000000000000000, 1, 0), nrow = 2, byrow = TRUE)

print(loss_matr)

fit <- rpart(Survived ~ ., data = df, method = "class", parms = list(loss = loss_matr))
rpart.plot(fit, fallen.leaves = FALSE, type = 1)

pred <- predict(fit, type = "class")
confusionMatrix(pred, df$Survived)
库(rpart)
库(rpart.plot)

df你网站上的博文说成本矩阵的布局是

TP   FP
FN   TN
但你的成本矩阵是:

loss_matr
     [,1]  [,2]
[1,]    0 1e+21
[2,]    1 0e+00
也就是说,你为误报付出了高昂的代价, 不要对错误的否定。你需要

loss_matr <- matrix(c(0, 1000000000000000000000, 1, 0), nrow = 2)

loss\u matr泰坦尼克号数据集来自何处?是的,博客文章中的成本矩阵具有相反的结构,我已经相应地调整了成本。你陈述我的成本矩阵的方式就是我所拥有的,也就是说,如果我的分类器按照这个顺序构造类,你所陈述的方法是有效的,但是我怎么知道哪个类是分类器的第一类呢?你说得对。togaware网站的说法与Listenda网站的说法相反。文档似乎没有提供多少帮助。除了尝试两种方法来看看什么是有效的之外,我不知道如何知道使用哪种结构。有什么听起来像是正确的信息。这取决于类变量中因素的顺序。查看您发送的页面,我看到这样一句话:“因此,在这种情况下,产生假阳性的情况要比产生假阴性的情况糟糕5倍。这将降低预测类1的频率。”这对我来说没有意义-它应该是相反的,也就是说,类2应该不那么频繁地被预测,不是吗?