SVM及其实践2 --- 对典型数据集的多分类实践

说明

本文为SVM系列的第二篇文章,主要是基于SVM对两份公开数据集的分类实践。建议读者在阅读本文前先看看本系列的第一篇博文[1]: SVM及其实践1 --- 概念、理论以及二分类实践-CSDN博客

Blog

2024.10.6 本文第一次撰写

目录

说明

目录

一、Iris数据集以及基于SVM对该数据集的分类实践

[1.1 Iris数据集介绍](#1.1 Iris数据集介绍)

[1.2 基于SVM对Iris数据集的分类实践](#1.2 基于SVM对Iris数据集的分类实践)

二、Glass数据集以及基于SVM对该数据集的分类实践

[2.1 Glass数据集介绍](#2.1 Glass数据集介绍)

[2.2 基于SVM对Glass数据集的分类实践](#2.2 基于SVM对Glass数据集的分类实践)

三、总结

四、参考资料

五、数据和参考代码


一、Iris数据集以及基于SVM对该数据集的分类实践

1.1 Iris数据集介绍

Iris(鸢尾花卉数据集)我在之前关于聚类的博文[2] ++(毫米波雷达数据处理中的)聚类算法(2)--DBSCAN算法及其实践-CSDN博客++ 中对其有过比较详细的介绍和聚类实践,读者可以去这篇博文中了解,这里不再做细节的介绍,该数据集的下载读者可以去网站[3] ++UCI Machine Learning Repository++ 下载(这里面还有很多其它的数据集,后文的Glass数据集也可以在这里面下载!)。

该数据集一共有3类,包含150个样本,每个样本有4个属性,其物理意义是:花萼长度、花萼宽度、花瓣长度、花瓣宽度,我们需要基于这四个属性对样本进行分类。

1.2 基于SVM对Iris数据集的分类实践

分别使用线性核、多项式核、高斯核、sigmoid核对其进行训练(我只是在参数设置中分别选取了这几种核函数,其它的参数都为默认状态)。为了更好地展示准确率,我设计了1000次蒙特卡罗试验(关于蒙特卡罗试验,我再之前写过一篇博文[4],感兴趣的读者可以去查看),每次试验下都对数据进行一次随机排布,然后选取前面60%的数据作为训练集,选取后面40%的数据作为测试集。得到的结果如下:

图1.1 不同核SVM下的分类准确率

图中垂直于X轴的线段对应1000次仿真下的准确率变化范围,空心菱形对应的位置为均值。从结果上来看线性核的效果最好,sigmoid核效果最差,不过考虑到我其它参数都设置为默认,所以可调(可优化)参数还有很多,这并不意味着线性核性能最好。

读者可以基于LIBSVM给的函数说明文档,去做一些不同超参数下的尝试,以优化得到更好的分类效果。

二、Glass数据集以及基于SVM对该数据集的分类实践

2.1 Glass数据集介绍

该数据集也可以从[3]中下载,我下载到的该数据一共214组,分6类,每个数据包含9个属性,更具体的信息读者可以从[3]中获取。

2.2 基于SVM对Glass数据集的分类实践

处理的方法与对Iris数据集的处理类似:设计了1000次蒙特卡罗试验,每次试验下都对数据进行一次随机排布,然后选取前面60%的数据作为训练集,选取后面40%的数据作为测试集。得到的结果如下:

图1.2 不同核SVM下的分类准确率

效果似乎都不是很理想,需要做一些超参数(比如高斯核函数中的γ值,默认下该值为0,但是我们可以通过调整该值来获得不一样的效果)调优的工作。关于调优,一种容易想到方法是:可以构建循环,对参数设置特定的步进,每个值下都进行多次训练和测试,得到一个分类准确率的均值,随后通过比较,得到最好准确率下的超参数值。

三、总结

本文承接本系列第一篇博文[1]的内容,基于SVM对两个比较典型且简单(不需要我们做太多的数据预处理工作)的公开数据集进行了分类实践。至少从流程上跑通了关于SVM实践的整个过程,分类的结果基本符合预期,不过还需要进一步优化超参数以提高模型的准确率。

四、参考资料

1\] [SVM及其实践1 --- 概念、理论以及二分类实践-CSDN博客](https://blog.csdn.net/xhblair/article/details/142725369?sharetype=blogdetail&sharerId=142725369&sharerefer=PC&sharesource=xhblair&spm=1011.2480.3001.8118 "SVM及其实践1 --- 概念、理论以及二分类实践-CSDN博客") \[2\]++[(毫米波雷达数据处理中的)聚类算法(2)--DBSCAN算法及其实践-CSDN博客](https://blog.csdn.net/xhblair/article/details/138889630?spm=1001.2014.3001.5502 "(毫米波雷达数据处理中的)聚类算法(2)–DBSCAN算法及其实践-CSDN博客")++ \[3\] ++[UCI Machine Learning Repository](https://archive.ics.uci.edu/datasets "UCI Machine Learning Repository")++ \[4\] ++[关于蒙特卡罗方法及其在信号处理中的应用-CSDN博客](https://blog.csdn.net/xhblair/article/details/130782205?spm=1001.2014.3001.5502 "关于蒙特卡罗方法及其在信号处理中的应用-CSDN博客")++ ## 五、数据和参考代码 本文的代码和本系列第一篇博文\[1\]中相关的代码我一并打包如下: [SVM及其实践系列博文对应的数据和代码资源-CSDN文库](https://download.csdn.net/download/xhblair/89851640?spm=1001.2014.3001.5503 "SVM及其实践系列博文对应的数据和代码资源-CSDN文库")

相关推荐
什么都想学的阿超21 分钟前
【大语言模型 00】导读
人工智能·语言模型·自然语言处理
lxmyzzs23 分钟前
【图像算法 - 16】庖丁解牛:基于YOLO12与OpenCV的车辆部件级实例分割实战(附完整代码)
人工智能·深度学习·opencv·算法·yolo·计算机视觉·实例分割
明心知28 分钟前
DAY 45 Tensorboard使用介绍
人工智能·深度学习
维维180-3121-14551 小时前
AI大模型+Meta分析:助力发表高水平SCI论文
人工智能·meta分析·医学·地学
程序员陆通1 小时前
CloudBase AI ToolKit + VSCode Copilot:打造高效智能云端开发新体验
人工智能·vscode·copilot
程高兴1 小时前
遗传算法求解冷链路径优化问题matlab代码
开发语言·人工智能·matlab
拾零吖1 小时前
吴恩达 Machine Learning(Class 1)
人工智能·机器学习
数据皮皮侠1 小时前
最新上市公司业绩说明会文本数据(2017.02-2025.08)
大数据·数据库·人工智能·笔记·物联网·小程序·区块链
智算菩萨2 小时前
【计算机视觉与深度学习实战】05计算机视觉与深度学习在蚊子检测中的应用综述与假设
人工智能·深度学习·计算机视觉
hllqkbb2 小时前
人体姿态估计-动手学计算机视觉14
人工智能·opencv·计算机视觉·分类