我在R中使用randomForest。R中的级别 - 正确设置新数据集
我对包含因子变量的一组数据进行训练。这个变量有以下几个层次:
[1] "Economics" "Engineering" "Medicine"
[4] "Accounting" "Biology" "Computer Science"
[7] "Physics" "Law" "Chemistry"
我的评价集有那些水平的一个子集:
[1] "Law" "Medicine"
的随机森林包需要的水平是一样的,所以我曾尝试:
levels(evaluationSet$course) <- levels(trainingSet$course)
但是当我检查评估集中的行时,数值发生了变化:
evaluationSet[1:3,c('course')]
# Gives "[1] Economics Engineering Economics", should give "[1] Law Medicine Law"
我是R的新手,但我认为这里发生的事情是因素是枚举集合。在评估集中,“法律”和“医学”在因子(分别为1和2)中用数字表示。当我应用新的关卡时,它会改变这些关卡映射到的值。
我发现这么几个类似的题目,并试图他们的建议,但没有运气:
evaluationSet <- droplevels(evaluationSet)
levels(evaluationSet$course) <- levels(trainingSet$course)
evaluationSet$course <- factor(evaluationSet$course)
我如何设置的级别是一样的设置,同时保留我的数据的价值的培训?
编辑:添加之前和水平后(evaluationSet $课程)头的结果(evaluationSet)< - 水平(trainingSet $课程):
timestamp score age takenBefore course
1 1374910975 0.87 18 0 law
2 1374910975 0.81 21 0 medicine
3 1374910975 0.88 21 0 law
4 1374910975 0.88 21 0 law
5 1374910975 0.74 22 0 law
6 1374910975 0.76 23 1 medicine
timestamp score age takenBefore course
1 1374910975 0.87 18 0 economics
2 1374910975 0.81 21 0 engineering
3 1374910975 0.88 21 0 economics
4 1374910975 0.88 21 0 economics
5 1374910975 0.74 22 0 economics
6 1374910975 0.76 23 1 engineering
在尝试设置级别之前和之后,您能向我们展示head(evaluateSet)吗? – Marius
@Marius问题编辑。 – pricj004
你是对的,因素只是每个数字都带有字符串标签的枚举。 –