gpt4 book ai didi

用于评估模型性能的 R 表——观察类别与预测类别

转载 作者:行者123 更新时间:2023-11-30 09:02:25 25 4
gpt4 key购买 nike

我涉及一个具有 10 个级别的变量的预测,并且我使用 rpart 进行分类。建表具体代码为

as.vector(t(table(predict(bb.rt,set[train,],type="class"),response[train])))

但是结果很糟糕: 观察类→

预计类(class)↓

               1    2   3   4    5  6    7 8   9   10
1 26.0 0.0 0.6 0.0 0.0 0 0.0 0 0.0 0.2
10 0.2 0.0 0.0 0.0 0.4 0 0.0 0 0.4 12.8
2 0.0 45.6 0.6 1.4 0.6 0 0.0 0 0.0 0.0
3 0.2 0.0 6.0 0.0 0.0 0 0.0 0 0.0 0.0
4 0.0 0.2 0.0 3.4 0.0 0 0.0 0 0.0 0.0
5 0.0 0.0 0.0 0.0 11.8 0 0.0 0 0.0 0.0
6 0.0 0.0 0.0 0.0 0.0 19 0.0 0 0.0 0.0
7 0.0 0.8 0.0 0.0 0.0 0 16.8 0 0.0 0.0
8 0.0 0.0 0.0 0.0 0.0 0 0.0 4 0.0 0.0
9 0.0 0.0 0.0 0.0 0.0 0 0.0 0 9.4 0.6

预测类别按字母顺序排序,但观察类别则不然。我需要它们以相同的方式排序,以便我可以将诊断(矩阵)上的值与其他值进行比较。

最佳答案

如果我正确理解了你的问题,看来你只是想要一个混淆矩阵。

当然,手动计算它们并不困难,但是各种 R 包中(至少)有十几个内置函数可以为您处理所有这些操作——数据处理、表格格式化、错误检查、等等。我下面使用的内置函数也计算分类误差。

mda 包有一个内置函数,称为混淆。你像这样使用:

> library(mda)
> data(iris)
> iris_fit = fda(Species ~., data=iris)

> CM = confusion(predict(iris_fit, iris), iris$Species)
> # observed classification (true) is column-wise;
> # predicted is row-wise
> CM

true
predicted setosa versicolor virginica
setosa 50 0 0
versicolor 0 48 1
virginica 0 2 49

attr(,"error")
[1] 0.02

同样,CRAN 上的第三方软件包还有更多函数可以计算混淆矩阵。

使用 sos 快速搜索 R 包空间,得到以下结果:

> library(sos)

> findFn("confusion", maxPages=5, sortby="MaxScore")

我故意将此搜索限制为前 5 页结果(返回 87 个单独的函数)。从这些结果来看,其他具有混淆矩阵函数的 R 包:

  • zmisclassification.matrix 在 fpc 包中

  • panr.confusion 在 pamr 包中

  • DAAG 包中的困惑

关于用于评估模型性能的 R 表——观察类别与预测类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9734283/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com