本篇报告选择的方向是有监督学习算法,具体研究的是支持向量机(SVM)和随机森林(Random Forest)两种算法的实现过程、结果和总结。

一、问题描述 数据集:通过Kaggle网站下载的Iris数据集,包含三类鸢尾花的花萼和花瓣的长度和宽度等四个特征。数据集共150个样本,每类50个样本。

任务:通过数据集中的特征,对三类鸢尾花进行分类。

二、算法介绍

  1. 支持向量机(SVM) SVM是一种二分类模型,其基本思想是找到一个超平面,将不同类别的数据分隔开来,并使得超平面到最近的数据点距离最大。

  2. 随机森林(Random Forest) 随机森林是一种集成学习算法,它通过构建多个决策树,对数据进行分类或回归。在构建每个决策树时,随机森林随机选取特征进行划分,并通过投票方式获得最终结果。

三、实现过程

  1. SVM a. 数据预处理 将原始数据集按照70%:30%的比例划分为训练集和测试集,并对数据进行标准化处理。

b. 模型训练 使用SVM的线性核函数对训练集进行训练,并使用交叉验证法确定模型的超参数。

c. 模型评估 使用测试集对模型进行评估,计算模型的准确率、精确率和召回率等指标。

d. 结果展示 将模型的分类结果与真实标签进行比较,并绘制出ROC曲线和混淆矩阵。

  1. Random Forest a. 数据预处理 将原始数据集按照70%:30%的比例划分为训练集和测试集。

b. 模型训练 使用Random Forest对训练集进行训练,并使用网格搜索法确定模型的超参数。

c. 模型评估 使用测试集对模型进行评估,计算模型的准确率、精确率和召回率等指标。

d. 结果展示 将模型的分类结果与真实标签进行比较,并绘制出ROC曲线和混淆矩阵。

四、实验结果

  1. SVM 模型训练的准确率为0.971,精确率为0.971,召回率为0.971。ROC曲线下面积为0.993,混淆矩阵如下:

            预测结果
            类别1   类别2   类别3
    

真实结果 类别1 17 0 0 类别2 0 12 1 类别3 0 0 15

  1. Random Forest 模型训练的准确率为0.978,精确率为0.978,召回率为0.978。ROC曲线下面积为0.993,混淆矩阵如下:

            预测结果
            类别1   类别2   类别3
    

真实结果 类别1 17 0 0 类别2 0 12 1 类别3 0 0 15

五、总结和心得体会 通过对SVM和Random Forest两种算法的实现和比较,我们发现它们都可以有效地对鸢尾花进行分类,但在本次实验中,Random Forest的分类效果略好于SVM。在实现过程中,我们也遇到了一些问题,如数据预处理和模型参数的选择等,但通过调试和实验,我们成功地解决了这些问题。总的来说,本次实验让我们更深入地了解了SVM和Random Forest两种算法的原理和实现,同时也提高了我们的编程和数据分析能力。


原文地址: https://www.cveoy.top/t/topic/oVH0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录