我正在尝试使用R中的神经网络训练神经网络,但是我得到了非常高的误差项(在1850年的区域内)。输入变量是对一组6个Likert量表的响应(全部在1-7上),输出是对另一个变量(编码为0,1)是否存在topbox响应。输入变量已经缩放到0,1范围(我也试过归一化到平均值0)。我已经尝试了一系列隐藏节点(从1-10开始),并且网络在200000-400000次迭代中相当可靠地收敛到0.1的阈值,但是在1800-1900左右具有一致的误差项。总共有30,000个案例,在培训集中约有22000个案例。我理解这种类型的问题不一定需要神经网络 - 这是在应用于其他问题之前熟悉的数据集上的概念证明(非常好......)。关于如何减少错误/改进培训网的任何建议都表示赞赏。
正如我所说,我已经尝试了规范化和缩放,现在也使用了插入符中提供的pca预处理。必须是数据中的某些东西,但有点不知所措......
代码:
maxs <-apply(final, 2, max)
mins <-apply(final, 2, min)
scaled <-as.data.frame(scale(final, center=mins, scale=maxs-mins))
index<-sample(1:nrow(scaled), round(0.75*nrow(scaled)))
train_ <-scaled[index,]
test_ <-scaled[-index,]
nn<-neuralnet(Q11~A1+B1+C1+D1+E1+Q12, data=train_, hidden=5, rep=1,threshold=0.01, stepmax=6e+05, linear.output=F, lifesign='full')