R 计算精度时,因子的水平集不同

R 计算精度时,因子的水平集不同,r,r-factor,R,R Factor,我建立了一个随机森林模型。预测产量和实际产量是两个因素。有19个类别需要预测,但其中一个类别没有出现在测试数据集中 然后我想用以下公式计算模型的精度: accuracy <- sum(ActualOutput==PredictedOutput, na.rm = TRUE) / length(PredictedOutput) 准确性如果将变量转换为字符而不是因子,是否也会遇到同样的问题?你能这样建立你的模型吗?或者你需要因子类型 通常,这是一个培训/测试数据集构建问题。有时,当其中一个课程

我建立了一个随机森林模型。预测产量和实际产量是两个因素。有19个类别需要预测,但其中一个类别没有出现在测试数据集中

然后我想用以下公式计算模型的精度:

accuracy <- sum(ActualOutput==PredictedOutput, na.rm = TRUE) / length(PredictedOutput)

准确性如果将变量转换为字符而不是因子,是否也会遇到同样的问题?你能这样建立你的模型吗?或者你需要因子类型

通常,这是一个培训/测试数据集构建问题。有时,当其中一个课程的观察结果很少时,您必须确保在培训和测试集中都有一些案例。检查一些分层抽样方法


你能提供一些关于随机林模型使用的软件包和命令的更多信息吗?

假设我们有两个长度相同但级别不同的输出
ActualOutput
PredictedOutput

PredictedOutput <- factor(c("a", "b", "b"))
ActualOutput <- factor(c("a", "b", "c"))

sum(ActualOutput == PredictedOutput)

Error in Ops.factor(ActualOutput, PredictedOutput) : 
  level sets of factors are different
现在,
PredictedOutput
看起来像

[1] a b b
Levels: a b c
你的公式应该有效

sum(ActualOutput == PredictedOutput)
[1] 2

如果你有一个小的可复制的例子,我们可能会提供更大的帮助

这样一个伟大的澄清和回答。它工作得很好。非常感谢。我需要保持变量的因子形式。我一定会尝试分层抽样的方法。谢谢你的想法。对于随机森林模型,我尝试了随机森林软件包。它包含有用的训练和预测功能
sum(ActualOutput == PredictedOutput)
[1] 2