山东大学《机器学习》实验报告
----集成学习处理MNIST数据集
软件16-6 李昊 201600301309
注意!!
使用svm之前请先解压./dataforsvm.zip。
mnist.pkl.gz上次实验已经上传过了,这次不再上传,运行之前请把它放到当前目录下。
问题背景:
继上次实验用BP神经网络处理完MNIST数据集之后,我们这次的任务是用多个模型进行投票,组成一个集成学习模型来处理MNIST数据集。
问题分析:
本次实验我准备了如下几个模型:
带一层隐藏层的BP神经网络1(785,51,10,eta=0.8)
带一层隐藏层的BP神经网络2(785,31,10,eta=1)
knn
svm1(线性核)
svm2(sigmoid核)
最终取所有模型预测结果的众数作为投票结果。
问题解决:
处理MNIST数据集
虽然老师允许使用现有的库,但是不同的库对数据格式的要求不同。所以处理数据的格式成了一个大难题。bp神经网络的数据在上次实验中已经整理好了格式,knn稍微一变也能使用。在处理数据使其支持svm的格式上,我把训练集和测试集重新读取到两个文件中,并且在文件中整理好了格式。
with open('traindata','w') as fout:
for i in range(len(images_train)):
line=''+str(labels_onlynum[i])
for j in range(784