我试图弄清楚“R”如何将因子作为预测变量处理背后的机制。我在下面写的这些都不是好的做法,但是,这纯粹是出于好奇,所以会很感激任何想法。R 中的标准 Iris 数据集具有列:Sepal.Length、Sepal.Width、Petal.Length、Petal.Width、Species,其中最后一个是一个因素。处理这个数据集的标准方法是通过使用神经网络或树来演示分类算法,其中
rnn1 <- rxNeuralNet(Species~Sepal.Length+Sepal.Width+...,data = iris, numHiddenNodes = 100, numIterations = 1000,type = "classification")
我决定看看如果你把它反过来会发生什么:
rnn2 <- rnn1 <- rxNeuralNet(Petal.Width~Sepal.Length+Sepal.Width+Species,data = iris, numHiddenNodes = 100, numIterations = 1000,type = "regression")
然后我创建了我的测试数据框:
df1 <- data.frame(Petal.Width=5,Sepal.Length=12,Sepal.Width=3,Species="setosa",Petal.Length=3)
rxPredict() 然后给我一个物种“setosa”的分数 0.6058862。但是,很奇怪,这是我的问题,我可以为物种添加任何我想要的“字符串”,我仍然会得到一个预测。我输入Species="Jack"
, rxPredict 现在给出 1.545223 的分数。这很奇怪,因为在标准 R 中,如果您尝试针对任何不在原始数据集中的因素进行预测,它将引发因素错误。
有任何想法吗?
谢谢。