我试图弄清楚“R”如何处理因子作为预测变量背后的机制。我在下面写的所有内容也许都不是很好的做法,但是,这纯粹是出于好奇心,所以会很感激任何想法。 R中的标准Iris数据集具有列:Sepal.Length,Sepal.Width,Petal.Length,Petal.Width,Species,其中last是一个因子。与此数据集相关的标准事项是通过使用神经网络或树来演示分类算法,其中
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)
然后,对于物种“setosa”,rxPredict()给了我0.6058862的分数。但是,非常奇怪,这是我的问题,我可以把我想要的任何“字符串”用于物种,我仍然会得到一个预测。我放Species="Jack"
,而rxPredict现在得分为1.545223。这很奇怪,因为在标准-R中,如果您尝试预测原始数据集中没有的任何因素,则会引发因子错误。
有什么想法吗?
感谢。