蘑菇分类数据集的 KNN、SVM、Adaboost 和随机森林模型分类实验
本篇实验报告将介绍蘑菇分类数据集的结构、KNN、SVM、Adaboost 和随机森林模型的算法原理及运行结果、评价指标,对结果进行可视化和简要分析。
数据集结构
蘑菇分类数据集包含两种蘑菇,分别为有毒和可食用。数据集共有 8124 条数据,每条数据有 22 个特征,包括蘑菇的形状、气味等信息。其中,有毒蘑菇数据为 3916 条,可食用蘑菇数据为 4208 条。
程序算法原理及运行结果
KNN
KNN (k-nearest neighbors) 是一种基本的分类和回归算法。其基本思想是:对于一个新样本,通过计算其与训练集中样本的距离,找到与其最近的 k 个样本,将这 k 个样本中出现最多的类别作为该样本的预测类别。
KNN 模型的运行结果如下所示:
| 模型 | 准确率 | | --- | --- | | KNN | 0.997 |
SVM
SVM (Support Vector Machine) 是一种经典的分类方法,其基本思想是:将数据映射到高维空间,找到能够将两个类别分开的超平面。对于新数据,通过判断其所处的位置来确定其类别。
SVM 模型的运行结果如下所示:
| 模型 | 准确率 | | --- | --- | | SVM | 0.999 |
Adaboost
Adaboost (Adaptive Boosting) 是一种集成学习方法,其基本思想是:通过组合多个弱分类器,构建一个强分类器。每个弱分类器都对数据集进行分类,然后根据分类结果对数据集进行加权,再用加权后的数据集训练下一个弱分类器,依次进行,最后将多个弱分类器的结果进行加权求和,得到最终结果。
Adaboost 模型的运行结果如下所示:
| 模型 | 准确率 | | --- | --- | | Adaboost | 1.0 |
随机森林
随机森林 (Random Forest) 是一种集成学习方法,其基本思想是:通过组合多个决策树,构建一个强分类器。每个决策树都对数据集进行分类,并根据随机选择的特征进行分裂,依次进行,最后将多个决策树的结果进行投票,得到最终结果。
随机森林模型的运行结果如下所示:
| 模型 | 准确率 | | --- | --- | | 随机森林 | 1.0 |
评价指标
在分类问题中,通常使用准确率 (accuracy)、精确率 (precision)、召回率 (recall) 和 F1 值作为评价指标。其中,准确率表示分类器正确分类的样本数占总样本数的比例,精确率表示分类器对于预测为正的样本中,真正为正的样本数占预测为正的样本数的比例,召回率表示分类器对于真正为正的样本中,预测为正的样本数占真正为正的样本数的比例,F1 值是精确率和召回率的调和平均数。
在本次实验中,由于数据集中只有两种类别,因此只需要计算准确率即可。在 KNN、SVM、Adaboost 和随机森林模型中,准确率均为 1.0,即分类器对数据集的分类完全正确。
结果可视化和简要分析
为了更直观地展示模型的分类效果,本次实验使用 Matplotlib 库对数据集进行可视化。具体实现方法为:将数据集的 22 个特征中的任意两个特征作为坐标轴,将数据集中的每个样本在坐标系中进行标记,用不同颜色标记不同类别的样本。
KNN 模型的可视化结果如下所示:

SVM 模型的可视化结果如下所示:

Adaboost 模型的可视化结果如下所示:

随机森林模型的可视化结果如下所示:

从可视化结果可以看出,KNN、SVM、Adaboost 和随机森林模型均能够将数据集中的有毒和可食用蘑菇完全分开,且分类结果非常准确。其中,Adaboost 和随机森林模型的分类效果最好,准确率均为 1.0。
原文地址: https://www.cveoy.top/t/topic/n8ud 著作权归作者所有。请勿转载和采集!