机器学习 SVM 作业报告
一、实验目的
1. 将经典数据集——Iris 鸢尾花的数据样本实现 SVM 分类。
2. 进一步熟悉和应用 SVM。
二、实验方法
使用 python 3.9 的 IDLE 作为编程环境,编程语言为 python,利用模块如 sklearn、
numpy 等实现需要的功能。
简单地介绍一下用到的模块:
1. sklearn
sklearn (scikit-learn) 是基于 Python 语言的机器学习工具,是简单高效的数
据挖掘和数据分析工具,有常用的机器学习(如:广义线性模型、最近邻法、决
策树等)的工具,也有一些很经典的数据集(如:波士顿房价、鸢尾花、酒、样
本图片等)。
2. numpy
NumPy 是使用 Python 进行科学计算的基础软件包。它是一个 Python 库,提供多
维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各
种 API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变
换、基本线性代数,基本统计运算和随机模拟等等。
3. Matplotlib
Matplotlib 是一个 Python 2D 绘图库,它以多种硬拷贝格式和跨平台的交互式环
境生成出版物质量的图形。 Matplotlib 可用于 Python 脚本,Python 和 IPython
(opens new window)Shell、Jupyter (opens new window)笔记本,Web 应用程序服
务器和四个图形用户界面工具包。
三、实验结果
1.训练集和测试集的划分
本次实验,使用的是 sklearn 模块中经典数据集 Iris 鸢尾花,导入数据后,得
到的是一个 150X4 的矩阵(特征)和一个长度为 150 的向量(标签)。
将数据进行标准化。得到标准化后的数据,将其进行训练集和测试集的划分。
使用 sklearn 模块中的函数 train_test_split()对训练集和测试集进行划分。
调节函数中的参数,设置测试集所占比例为 30%,训练集为 70%,并且打乱样本,
选择每次运行程序程序,划分的结果都不一样。
2.实验参数设置
选择核函数为高斯函数,并且分类方法为“one against one”。将其训练并测试
20 次后求精度平均值。
3.实验结果