人工智能实验报告四
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
人工智能实验报告四
课程实验报告
课程名称:人工智能
实验项目名称:实验四:分类算法实验
专业班级:
姓名:学号:
实验时间:2021年6月18日
实验四:分类算法实验
一、实验目的
1.了解有关支持向量机的基本原理
2.能够使用支持向量机的代码解决分类与回归问题
3. 了解图像分类的基本原理
二、实验的硬件、软件平台
硬件:计算机
软件:操作系统:***** 10应用软件:C+ + ,Java或者Matlab
三、实验内容
支持向量机算法训练分类器:
1.训练数据集:见文档“分类数据集.doc”,前150个数据作为训练数据,其他数据作为测试数据,数据中“ + 1”“-1”分别表示正负样本。
2.使用代码中的C-SVC算法和默认参数来训练“分类数据集doc”中所有的数据(包括训练数据和测试数据),统计分类查准率。
3.在2的基础上使用k-折交叉验证思想来训练分类器并统计分类查准率。
4.使用2中的设置在训练数据的基础上学习分类器,将得到的分类器在测试数据上进行分类预测,统计查准率。
5.在4上尝试不同的C值("-c”参数)来调节分类器的性能并绘制查准率曲线。
6.尝试不同的kernel函数("-t”参数)来调节分类器的性能并绘制
查准率曲线,对每种kernel函数尝试调节其参数值并评估查准率。四. 实验操作
采用提供的windows版本的libsvm完成实验。
1.文档“分类数据集.doc”改名为trainall.doc,前150组数据保存为train.doc 后120 组保存为test.doc
2.
使用代码中的C-SVC算法和默认参数来训练“分类数据集.doc” 中所有的数据(包括训练数据和测试数据),统计分类查准率。
用法:svm-scale [-l lower] [-u upper] [-y y_lower y_upper] [-s save_filename] [-r restore_filename] filename (缺省值:lower =- 1, upper = 1,没有对y进行缩放)按实验要求这个函数直接使用缺省值就行了。svm-train
按要求使用默认的参数;
直接在cmd窗口输入:svm-train trainall.doc trainall.model trainall.doc包含“分类数据集.doc”的270组数据即可建立模型,模型文件为:trainall.model. cmd窗口输出:
其中,#iter为迭代次数,nu与前面的操作参数-n n相同,obj 为SVM文件转换为的二次规划求解得到的最小值,rho为判决函数的常数项b,nSV为支持向量个数,nBSV为边界上的支持向量个数,Total nSV为支持向量总个数。
svm-predict
是根据训练获得的模型,对数据集合进行预测。
options (操作参数):
-b probability_estimates:是否需要进行概率估计预测,可选值为0或者1,默认值为0。
model_file是由svm-train产生的模型文件;test_file是要进行预测的数据文件;output_file是svm-predict的输出文件,表示预测的结果值。Svm-predict没有其它的选项。
使用“分类数据集.doc"的270组数据(trainall.doc)得到的模型trainall.model训练包含120组数据的测试数据集”test.doc”
输入命令:svm-predict test.doc trainall.model trainall- test.predict 结果:
Accuracy=87.5%
2.在2的基础上使用k-折交叉验证思想来训练分类器并统计分类查准率。当svm-train使用-v参数时,此时svm-train返回的不再是一个结构体model,而是交叉验证的精度,对于分类问题,返回的是交叉检验下的平均分类准确率;回归问题,返回的是交叉检验下的平均均方根误差(MSE)。将svm-train Cv参数设置为k (分别设置为2,3,5)选择训练样本trainall.doc V=2
V=3
V=5
3.使用2中的设置在训练数据的基础上学习分类器,将得到的分类器在测试数据上进行分类预测,统计查准率
选择“分类数据集“的前150组数据(train.doc)作为训练集产生模型train.model输入命令:
svm-train train.doc train.model