【发布时间】:2019-04-09 00:15:26
【问题描述】:
我正在使用如下所示的数据集:
> head(test_accuracy)
observed predicted new_predicted
1 Moving/Feeding Foraging Standing
2 Standing Foraging Standing
3 Standing Foraging Standing
4 Standing Foraging Standing
5 Standing Foraging Standing
6 Standing Foraging Standing
我的问题很简单。我想通过比较test_accuracy$observed 和test_accuracy$new_predicted 之间的匹配百分比来计算分类的准确度度量。我只是使用下面的代码,但我得到了相关的错误:
> head(test_accuracy)
observed predicted new_predicted
1 Moving/Feeding Foraging Standing
2 Standing Foraging Standing
3 Standing Foraging Standing
4 Standing Foraging Standing
5 Standing Foraging Standing
6 Standing Foraging Standing
> obs<-as.factor(test_accuracy$observed)
> pred<-as.factor(test_accuracy$new_predicted)
> mean(obs == pred)
Error in Ops.factor(obs, pred) : level sets of factors are different
有人可以告诉我我做错了什么吗?我可以在下面上传dput() 示例:
> dput(test_accuracy)
structure(list(observed = c("Moving/Feeding", "Standing", "Standing",
"Standing", "Standing", "Standing", "Moving/Feeding", "Moving/Feeding",
"Moving/Feeding", "Standing", "Standing", "Feeding/Moving", "Standing",
"Standing", "Moving/Feeding", "Feeding/Moving", "Feeding/Moving",
"Feeding/Moving", "Standing", "Standing", "Standing", "Standing",
"Moving/Feeding", "Moving/Feeding", "Standing", "Moving/Feeding",
"Moving/Feeding", "Moving/Feeding", "Moving/Feeding", "Moving/Feeding",
"Standing", "Standing", "Standing", "Moving/Feeding", "Standing",
"Standing", "Standing", "Standing", "Moving/Feeding", "Standing",
"Moving/Feeding", "Moving/Feeding", "Moving/Feeding", "Standing",
"Standing", "Moving/Feeding", "Moving/Feeding", "Moving/Feeding",
"Moving/Feeding", "Moving/Feeding", "Standing", "Standing", "Standing",
"Feeding/Moving", "Feeding/Moving", "Feeding/Moving", "Moving/Feeding",
"Feeding/Moving", "Feeding/Moving", "Feeding/Moving", "Feeding/Moving",
"Moving/Feeding", "Moving/Feeding", "Moving/Feeding", "Standing",
"Standing", "Standing", "Standing", "Feeding/Moving", "Standing",
"Standing", "Standing", "Standing", "Standing", "Moving/Feeding",
"Standing", "Moving/Feeding", "Standing", "Standing", "Feeding/Moving",
"Feeding/Moving", "Standing", "Moving/Feeding", "Moving/Feeding",
"Standing", "Moving/Feeding", "Feeding/Moving", "Moving/Feeding",
"Moving/Feeding", "Feeding/Moving", "Feeding/Moving", "Feeding/Moving",
"Feeding/Moving", "Feeding/Moving", "Feeding/Moving", "Standing",
"Standing", "Moving/Feeding", "Feeding/Moving", "Feeding/Moving",
"Feeding/Moving", "Feeding/Moving", "Feeding/Moving", "Feeding/Moving",
"Feeding/Moving", "Feeding/Moving", "Feeding/Moving", "Feeding/Moving",
"Feeding/Moving", "Feeding/Moving", "Feeding/Moving", "Feeding/Moving",
"Feeding/Moving", "Feeding/Moving", "Moving/Feeding", "Moving/Feeding",
"Feeding/Moving", "Moving/Feeding", "Moving/Feeding", "Moving/Feeding",
"Moving/Feeding", "Standing", "Moving/Feeding", "Moving/Feeding",
"Moving/Feeding", "Standing", "Standing", "Moving/Feeding", "Moving/Feeding",
"Moving/Feeding", "Moving/Feeding", "Moving/Feeding", "Moving/Feeding",
"Moving/Feeding", "Standing", "Standing", "Feeding/Moving", "Feeding/Moving",
"Feeding/Moving", "Feeding/Moving", "Feeding/Moving", "Feeding/Moving",
"Feeding/Moving", "Feeding/Moving", "Feeding/Moving", "Feeding/Moving",
"Feeding/Moving", "Feeding/Moving", "Feeding/Moving", "Feeding/Moving",
"Standing", "Moving/Feeding", "Standing", "Moving/Feeding", "Moving/Feeding",
"Moving/Feeding", "Moving/Feeding", "Standing", "Moving/Feeding",
"Moving/Feeding", "Feeding/Moving", "Moving/Feeding", "Moving/Feeding",
"Moving/Feeding", "Moving/Feeding", "Feeding/Moving", "Feeding/Moving",
"Moving/Feeding", "Moving/Feeding", "Moving/Feeding", "Moving/Feeding",
"Feeding/Moving", "Feeding/Moving", "Moving/Feeding", "Moving/Feeding",
"Moving/Feeding", "Standing", "Feeding/Moving", "Feeding/Moving",
"Feeding/Moving", "Feeding/Moving", "Feeding/Moving", "Feeding/Moving",
"Feeding/Moving", "Feeding/Moving", "Feeding/Moving", "Feeding/Moving",
"Feeding/Moving", "Moving/Feeding", "Standing", "Standing", "Moving/Feeding",
"Moving/Feeding", "Moving/Feeding", "Moving/Feeding", "Moving/Feeding",
"Moving/Feeding", "Moving/Feeding", "Moving/Feeding", "Moving/Feeding",
"Moving/Feeding", "Moving/Feeding", "Moving/Feeding", "Moving/Feeding",
"Standing", "Moving/Feeding", "Feeding/Moving", "Feeding/Moving",
"Feeding/Moving", "Feeding/Moving", "Feeding/Moving", "Feeding/Moving",
"Feeding/Moving", "Feeding/Moving", "Feeding/Moving"), predicted = structure(c(2L,
2L, 2L, 2L, 2L, 2L, 3L, 3L, 2L, 3L, 2L, 1L, 2L, 2L, 3L, 3L, 3L,
1L, 2L, 2L, 3L, 3L, 3L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 2L, 2L,
3L, 2L, 2L, 2L, 2L, 3L, 2L, 3L, 3L, 3L, 2L, 3L, 2L, 3L, 3L, 3L,
3L, 2L, 2L, 2L, 1L, 1L, 3L, 3L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 2L,
2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 3L, 2L, 2L, 2L, 2L, 3L, 3L,
2L, 2L, 3L, 2L, 3L, 3L, 2L, 3L, 1L, 3L, 1L, 1L, 3L, 1L, 2L, 2L,
3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
3L, 2L, 3L, 1L, 3L, 2L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L,
3L, 3L, 3L, 3L, 3L, 3L, 2L, 1L, 3L, 1L, 1L, 1L, 1L, 1L, 3L, 1L,
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 2L, 3L, 2L, 1L,
2L, 3L, 3L, 3L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 1L, 3L, 3L, 3L, 2L,
1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 1L, 1L, 1L, 3L, 2L, 2L, 3L, 3L,
2L, 3L, 3L, 3L, 3L, 2L, 3L, 2L, 2L, 3L, 2L, 2L, 3L, 1L, 3L, 1L,
1L, 1L, 1L, 1L, 3L, 1L), .Label = c("Feeding", "Foraging", "Standing"
), class = "factor"), new_predicted = c("Standing", "Standing",
"Standing", "Standing", "Standing", "Standing", "Moving/Feeding",
"Moving/Feeding", "Standing", "Moving/Feeding", "Standing", "Standing",
"Standing", "Standing", "Moving/Feeding", "Moving/Feeding", "Moving/Feeding",
"Standing", "Standing", "Standing", "Moving/Feeding", "Moving/Feeding",
"Moving/Feeding", "Standing", "Standing", "Standing", "Moving/Feeding",
"Moving/Feeding", "Moving/Feeding", "Moving/Feeding", "Moving/Feeding",
"Standing", "Standing", "Moving/Feeding", "Standing", "Standing",
"Standing", "Standing", "Moving/Feeding", "Standing", "Moving/Feeding",
"Moving/Feeding", "Moving/Feeding", "Standing", "Moving/Feeding",
"Standing", "Moving/Feeding", "Moving/Feeding", "Moving/Feeding",
"Moving/Feeding", "Standing", "Standing", "Standing", "Standing",
"Standing", "Moving/Feeding", "Moving/Feeding", "Standing", "Standing",
"Standing", "Moving/Feeding", "Moving/Feeding", "Moving/Feeding",
"Moving/Feeding", "Standing", "Standing", "Standing", "Standing",
"Standing", "Standing", "Standing", "Standing", "Standing", "Standing",
"Moving/Feeding", "Standing", "Standing", "Standing", "Standing",
"Moving/Feeding", "Moving/Feeding", "Standing", "Standing", "Moving/Feeding",
"Standing", "Moving/Feeding", "Moving/Feeding", "Standing", "Moving/Feeding",
"Standing", "Moving/Feeding", "Standing", "Standing", "Moving/Feeding",
"Standing", "Standing", "Standing", "Moving/Feeding", "Moving/Feeding",
"Standing", "Standing", "Standing", "Standing", "Standing", "Standing",
"Standing", "Standing", "Standing", "Standing", "Standing", "Standing",
"Standing", "Standing", "Moving/Feeding", "Standing", "Moving/Feeding",
"Standing", "Moving/Feeding", "Standing", "Moving/Feeding", "Standing",
"Standing", "Standing", "Standing", "Standing", "Standing", "Standing",
"Moving/Feeding", "Moving/Feeding", "Moving/Feeding", "Moving/Feeding",
"Moving/Feeding", "Moving/Feeding", "Moving/Feeding", "Moving/Feeding",
"Standing", "Standing", "Moving/Feeding", "Standing", "Standing",
"Standing", "Standing", "Standing", "Moving/Feeding", "Standing",
"Standing", "Standing", "Standing", "Standing", "Standing", "Standing",
"Standing", "Standing", "Standing", "Moving/Feeding", "Moving/Feeding",
"Moving/Feeding", "Standing", "Moving/Feeding", "Standing", "Standing",
"Standing", "Moving/Feeding", "Moving/Feeding", "Moving/Feeding",
"Standing", "Standing", "Moving/Feeding", "Moving/Feeding", "Moving/Feeding",
"Moving/Feeding", "Moving/Feeding", "Standing", "Moving/Feeding",
"Moving/Feeding", "Moving/Feeding", "Standing", "Standing", "Standing",
"Standing", "Standing", "Standing", "Standing", "Moving/Feeding",
"Moving/Feeding", "Standing", "Standing", "Standing", "Moving/Feeding",
"Standing", "Standing", "Moving/Feeding", "Moving/Feeding", "Standing",
"Moving/Feeding", "Moving/Feeding", "Moving/Feeding", "Moving/Feeding",
"Standing", "Moving/Feeding", "Standing", "Standing", "Moving/Feeding",
"Standing", "Standing", "Moving/Feeding", "Standing", "Moving/Feeding",
"Standing", "Standing", "Standing", "Standing", "Standing", "Moving/Feeding",
"Standing")), class = "data.frame", row.names = c(NA, -215L))
感谢任何输入!
【问题讨论】:
-
转向
factor有什么意义?observed有 3 个,而new_predicted有两个,因此您的错误。