人工智能实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
人工智能课程项目报告
姓名:
班级:二班
一、实验背景
在新的时代背景下,人工智能这一重要的计算机学科分支,焕发出了他强大的生命力。不仅仅为了完成课程设计,作为计算机专业的学生,
了解他,学习他我认为都是很有必要的。
二、实验目的
识别手写字体0~9
三、实验原理
用K-最近邻算法对数据进行分类。逻辑回归算法(仅分类0和1)四、实验内容
使用knn算法:
1.创建一个1024列矩阵载入训练集每一行存一个训练集
2.把测试集中的一个文件转化为一个1024列的矩阵。
3.使用knnClassify()进行测试
4.依据k的值,得出结果
使用逻辑回归:
1.创建一个1024列矩阵载入训练集每一行存一个训练集
2.把测试集中的一个文件转化为一个1024列的矩阵。
3.
使用上式求参数。步长0.07,迭代10次
4.使用参数以及逻辑回归函数对测试数据处理,根据结果判断测试数
据类型。
五、实验结果与分析
5.1实验环境与工具
Window7旗舰版+python2.7.10+numpy(库)+notepad++(编辑)
Python这一语言的发展是非常迅速的,既然他支持在window下运行就不必去搞虚拟机。
5.2实验数据集与参数设置
Knn算法:
训练数据1934个,测试数据有946个。
数据包括数字0-9的手写体。每个数字大约有200个样本。
每个样本保持在一个txt文件中。手写体图像本身的大小是32x32的二值图,转换到txt文件保存后,内容也是32x32个数字,0或者1,如下图所示
建立一个kNN.py脚本文件,文件里面包含三个函数,一个用来生成将每个样本的txt文件转换为对应的一个向量:img2vector(filename):,一个用来加载整个数据库loadDataSet():,最后就是实现测试。
5.3评估标准
看测试数与测试结果是否相同。相同输出结果正确,否则输出结果错误。
5.4实验结果与分析
实验分析:
KNN算法可以说是使用蛮力进行分类,每进行一个测试样本的判断,都要对所以的训练集操作一次,时间复杂度和空间复杂度都会随着训练集和测试集的数量而增加。而逻辑回归只对测试集操作一次。
可以说计算代价knn是乘法:测试集数*训练集数。而逻辑回归是加法测试集+训练集数。
实验结果:
Knn算法:
我们可以输入k的值进行测试。
当k=6时结果如下图:
当k=3时结果如下图:
逻辑回归:测试结果正确率为100%。
KNN算法部分代码
逻辑回归算法部分代码