这个取决于你用的什么算法
如果是BP算法进行数据分类,那就可以避免局部最优解
#首先读入程序包并对数据进行清理
library(DMwR)
library(nnet)
data(algae)
algae <- algae[-manyNAs(algae), ]
clean.algae <- knnImputation(algae[,1:12],k=10)
#神经网络还需要对数据进行标准化
norm.data <- scale(clean.algae[,4:12])
#使用nnet命令,参数规定隐层单元个数为10,权重调整速度为0.1,最大迭代次数为1000次,线性输入。
nn <- nnet(a1~., norm.data, size = 10, decay = 0.01,
maxit = 1000, linout = T, trace = F)
#利用模型进行预测
norm.preds <- predict(nn, norm.data)
#绘制预测值与真实值之间的散点图
plot(norm.preds~ scale(clean.algae$a1))
#计算相对误差
(nmse2 <- mean((norm.preds-scale(clean.algae$a1))^2) /
mean((mean( scale(clean.algae$a1)) - scale(clean.algae$a1))^2))
|