先分享一句话:“我愿做一只RDN,即使是单链,心里还有U。”——一个女生xiiao qi

http://www.kaggle.com数据分析的网站,有很多比赛

选用svm这么直接的分类器来对0到9进行手写数字识别,所以需要比较好的分类方法,svm有一对多,和一对一,个人很懒,也不是很了解投票法,所以随便写个了先二叉树聚类好的,再在上面加上两类分类器,今天很高兴,我花了3个小时训练好9个model,花了12134.251962 seconds.这么多时间得出结果,好吧,时间这么长,个人表示很心塞,也许应该用pca降维会快点,还有决策树真的很快,训练加测试只要几分钟,一些同学们处理过的神经网络也挺快的。

测试的时候,其实我一直怀疑我是错的,我一直想好多类的数字矩阵放进去,他自己根据我训练的model帮我分好类,告诉我这是多少多少,可是这样结果很奇葩,我也不知道第一次分类后每个数字的位置到哪里去了,我觉得也许我应该学习一下,一些师兄是怎么做到的,最后最后,为了至少有个结果出来,我还是用for循环好了T T(for循环的话,真的会很慢,让10000个数据一个一个读进去,然后判断它属于哪一类的。)

不过结果还好,没有让我太失望:

结果如下:

0错误总数为44,正确率为95.5102%
1错误总数为48,正确率为95.7709%
2错误总数为212,正确率为79.4574%
3错误总数为154,正确率为84.7525%
4错误总数为74,正确率为92.4644%
5错误总数为133,正确率为85.0897%
6错误总数为44,正确率为90.7098%
7错误总数为80,正确率为92.2179%
8错误总数为122,正确率为87.4700%
9错误总数为99,正确率为90.1883%

基于这里没有matlab的东东,我就不贴代码了,而且代码也很渣,还没完善,也没什么好看的

改进了一下代码,输入一个矩阵,不管是一个样本还是一个矩阵,他就自己分,发现快了好多啊

0错误总数为44,0正确率为95.5102%
1错误总数为48,1正确率为95.7709%
2错误总数为212,2正确率为79.4574%
3错误总数为154,3正确率为84.7525%
4错误总数为74,4正确率为92.4644%
5错误总数为176,5正确率为80.2691%
6错误总数为44,6正确率为90.7098%
7错误总数为80,7正确率为92.2179%
8错误总数为175,8正确率为82.0329%
9错误总数为99,9正确率为90.1883%
Elapsed time is 566.872892 seconds.

是原来的好多分之一时间,才9分钟,本来是3个小时的(刚才计算错了,对自己的数学无语了,竟然算成18分钟)的,果然代码改进下还是好的,接下来考虑PCA 降维啦,相信速度会更快的

0错误总数为44,0正确率为95.5102%
1错误总数为48,1正确率为95.7709%
2错误总数为212,2正确率为79.4574%
3错误总数为154,3正确率为84.7525%
4错误总数为74,4正确率为92.4644%
5错误总数为176,5正确率为80.2691%
6错误总数为44,6正确率为90.7098%
7错误总数为80,7正确率为92.2179%
8错误总数为175,8正确率为82.0329%
9错误总数为99,9正确率为90.1883%
Elapsed time is 812.984799 seconds.

用原来的方法是13分钟,相差两分钟,当初果然是我搞错了==,把程序停止的时间也算进去了,害我还到处跟人说,怎么我那么那么慢啊

这是今天的,今天花了7个小时训练,后来才发现t的参数对速度很有关系,刚开始选择是线性的,所以很慢,后来改了t=2,正确率高了不少哦,时间也快了很多,训练是30分钟,测试是16分钟的。

0错误总数为26,0正确率为97.3469%
1错误总数为31,1正确率为97.2687%
2错误总数为147,2正确率为85.7558%
3错误总数为109,3正确率为89.2079%
4错误总数为65,4正确率为93.3809%
5错误总数为121,5正确率为86.4350%
6错误总数为26,6正确率为93.6326%
7错误总数为87,7正确率为91.5370%
8错误总数为105,8正确率为89.2197%
9错误总数为98,9正确率为90.2874%
Elapsed time is 1011.698796 seconds.