}
labeltest<-factor(rep(0:9,c(87,97,92,85,114,108,87,96,91,89)))
data2<-data.frame(feature,labeltest)
pred1<-predict(m1,data2,type="class")
table(pred1,labeltest)
sum(diag(table(pred1,labeltest)))/length(name)
pred<-predict(m,feature)
table(pred,labeltest)
sum(diag(table(pred,labeltest)))/length(name)
经整理,我们有如下输出结果:
可以看到,神经网络与支持向量机还是有一定的可比性,但支持向量机的结果还是要优于神经网络的。
这里我们神经网络取25个节点(隐藏层)似乎出现了过拟合的现象(虽然还不算过于严重)我们应该减少节点个数得到更佳的预测结果。
关于节点的选择是个经验活,我们没有一定的规则。可以多试几次,结合训练集正确率与测试集正确率综合研判,但是构造神经网络的代价是高昂的,所以有一个不太坏的结果也就可以停止了。(其他参数的选择同样如此,但是不如size那么重要)
特征的选取对于识别问题来说相当的重要,也许主成分在选择特征时作用会比我们这样的选择更好,但是代价也更高,还有我们应该如何选择主成分,怎么选择(选择哪张图的主成分)都是需要考虑的。
五、神经网络还是支持向量机
从上面的叙述可以看出,神经网络与我们前面说的支持向量机有不少相似的地方,那么我们应该选择谁呢?下面是两种方法的一个简明对比:
– SVM的理论基础比NN更坚实,更像一门严谨的“科学”(三要素:问题的表示、问题的解决、证明)
– SVM ——严格的数学推理
–ANN ——强烈依赖于工程技巧
–推广能力取决于“经验风险值”和“置信范围值”,ANN不能控制两者中的任何一个。
–ANN设计者用高超的工程技巧弥补了数学上的缺陷——设计特殊的结构,利用启发式算法,有时能得到出人意料的好结果。
正如费曼指出的那样“我们必须从一开始就澄清一个观点,就是如果某事不是科学,它并不一定不好。比如说,爱情就不是科学。因此,如果我们说某事不是科学,并不是说它有什么不对,而只是说它不是科学。”与SVM相比,ANN不像一门科学,更像一门工程技巧,但并不意味着它就一定就不好。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-32507-10.html
去年买个表
哈哈哈哈