Ric*_*ruz 4 artificial-intelligence r machine-learning neural-network nnet
这个问题应该是非常简单的.但文档没有帮助.
我正在使用R.我必须使用该neuralnet包来解决多项分类问题.
所有示例均用于二项式或线性输出.我可以使用二项式输出做一些一对一的实现.但我相信我应该能够通过将3个单位作为输出层来实现这一点,其中每个单位都是二项式(即,这是正确输出的概率).没有?
这就是我要使用的nnet(我相信它正在做我想要的):
data(iris)
library(nnet)
m1 <- nnet(Species ~ ., iris, size = 3)
table(predict(m1, iris, type = "class"), iris$Species)
Run Code Online (Sandbox Code Playgroud)
这就是我想要使用的neuralnet(公式黑客是因为neuralnet似乎不支持.公式中的'符号):
data(iris)
library(neuralnet)
formula <- paste('Species ~', paste(names(iris)[-length(iris)], collapse='+'))
m2 <- neuralnet(formula, iris, hidden=3, linear.output=FALSE)
# fails !
Run Code Online (Sandbox Code Playgroud)
小智 6
你是对的,公式界面neuralnet()不支持' .'.
但是,上面代码的问题在于,不接受某个因素作为目标.您必须首先将因子扩展Species为三个二进制变量.讽刺的是,这个工作最好与功能class.ind()从nnet包(这不会需要这样的功能,因为nnet()和multinom()与因素做工精细):
trainData <- cbind(iris[, 1:4], class.ind(iris$Species))
neuralnet(setosa + versicolor + virginica ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width, trainData)
Run Code Online (Sandbox Code Playgroud)
这有效 - 至少对我而言.
| 归档时间: |
|
| 查看次数: |
9583 次 |
| 最近记录: |