首页 > 其他分享 >10.15

10.15

时间:2025-01-02 15:45:34浏览次数:1  
标签:score pred 算法 train 测试 test 10.15

实验四:SMO 算法实现与测试

一、实验目的

深入理解支持向量机(SVM)的算法原理,能够使用 Python 语言实现支持向量机的训 练与测试,并且使用五折交叉验证算法进行模型训练与评估。

 

二、实验内容

(1)从 scikit-learn 库中加载 iris 数据集,使用留出法留出 1/3 的样本作为测试集(注 意同分布取样); (2)使用训练集训练支持向量机—SMO 分类算法; (3)使用五折交叉验证对模型性能(准确度、精度、召回率和 F1 值)进行评估和选 择; (4)使用测试集,测试模型的性能,对测试结果进行分析,完成实验报告中实验四的 部分。

 

三、算法步骤、代码、及结果

   1. 算法伪代码

输入

 

鸢尾花数据集(包含特征数据和对应的类别标签)

步骤



  1. 数据加载阶段
  • o 从 sklearn 库中加载鸢尾花数据集,提取特征数据赋值给变量 X,类别标签赋值给变量 Y。
  1. 数据划分阶段
  • o 使用 train_test_split 函数按照测试集占总样本的 1/3 比例,将数据集划分为训练集(X_train、y_train)和测试集(X_test、y_test),设置随机种子为 42 以确保划分的可重复性。
  1. 模型构建与训练阶段
  • o 创建支持向量机(SVM)模型实例 model,设定以下参数:
    • 核函数选择 'linear'(线性核函数)。
    • 正则化参数 C 设置为 1.0。
    • 随机数生成器的种子设为 42。
    • o 使用训练集数据(X_train、y_train)对 model 进行训练。
  1. 交叉验证阶段
  • o 运用五折交叉验证对训练好的模型 model 在训练集(X_train、y_train)上进行评估,评估指标设定为准确率,将每次折叠得到的准确率分数存储在 scores 变量中。
  • o 计算并打印五折交叉验证准确率的平均值(即 scores.mean()),以此衡量模型在训练集上的整体性能表现。
  1. 模型测试与性能评估阶段
  • o 用训练好的模型 model 对测试集(X_test、y_test)进行预测,得到预测结果 y_pred。
  • o 计算测试集的准确率,通过 accuracy_score 函数对比 y_test 与 y_pred,将结果赋值给变量 accuracy。
  • o 计算测试集的精度(查准率),使用 precision_score 函数,采用 'macro' 平均方式对比 y_test 与 y_pred,将结果赋值给变量 precision。
  • o 计算测试集的召回率(查全率),使用 recall_score 函数,采用 'macro' 平均方式对比 y_test 与 y_pred,将结果赋值给变量 recall。
  • o 计算测试集的 F1 值,使用 f1_score 函数,采用 'macro' 平均方式对比 y_test 与 y_pred,将结果赋值给变量 f1。
  • o 分别打印测试集的准确率、精度(查准率)、召回率(查全率)以及 F1 值。

输出



  1. 五折交叉验证准确率的平均值。
  2. 测试集的准确率、精度(查准率)、召回率(查全率)以及 F1 值。

 

   2. 算法主要代码

完整源代码\调用库方法(函数参数说明)

from sklearn import datasets

from sklearn.model_selection import train_test_split, cross_val_score

from sklearn.svm import SVC

from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score

# 加载数据集

iris = datasets.load_iris()

X = iris.data

y = iris.target

# 数据划分

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=1 / 3, random_state=42)

# 模型训练

# 使用 SMO 算法训练支持向量机模型

model = SVC(kernel='linear', C=1.0, random_state=42)

model.fit(X_train, y_train)

# 交叉验证

scores = cross_val_score(model, X_train, y_train, cv=5, scoring='accuracy')

print("五折交叉验证准确率:", scores.mean())

# 模型测试

y_pred = model.predict(X_test)

# 性能评估

accuracy = accuracy_score(y_test, y_pred)

precision = precision_score(y_test, y_pred, average='macro')

recall = recall_score(y_test, y_pred, average='macro')

f1 = f1_score(y_test, y_pred, average='macro')

print("准确率:", accuracy)

print("精度(查准率):", precision)

print("召回率(查全率):", recall)

print("F1值:", f1)

 

 

 

   3. 训练结果截图(包括:准确率、精度(查准率)、召回率(查全率)、F1)

 

 

四、实验结果分析

1. 测试结果截图(包括:准确率、精度(查准率)、召回率(查全率)、F1)

 

 

2. 对比分析

其在训练和测试过程中表现出色,具备较高的准确性、精确率、召回率和F1分数。在实际应用中,模型能够很好地处理多类别问题,尤其是对于0类表现近乎完美。对于类别1和2,尽管有所差异,但总体表现依旧令人满意

 

 

五、心得体会

在实现与测试 SMO 算法的过程中,我深感其精妙之处。通过不断优化支持向量机的参数,实现高效分类。从理解算法原理到实际编程实现,每一步都充满挑战与收获。测试阶段见证了算法在不同数据集上的表现,也让我认识到算法的优势与局限性。这个过程提升了我的编程技能和对机器学习算法的理解,激励我不断探索更多先进算法。

 

标签:score,pred,算法,train,测试,test,10.15
From: https://www.cnblogs.com/jais/p/18647890

相关文章

  • 10.15
    逻辑设计阶段的输入信息有四种:①概念设计阶段的概念模式;②应用的处理需求;③完整性、安全性约束条件;④DBMS特性。     逻辑设计阶段的输出信息主要有四种:①DBMS可处理的模式;②子模式;③应用程序设计指南;④物理设计指南。32.答:在数据库运行时,把未提交随后又被撤消......
  • 10.15日报
    今天进行了mes系统的开发的学习,了解了mes系统开发的主要步骤,要明确目标,弄清楚需求分析报告的要求,并且设置对应的数据库,并且了解了如何绘制上下文图。下午完成软件设计实验以下为实验内容实验3:工厂方法模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解工厂方......
  • 10.15课程内容总结
    这节课以教育者的角度去了解AI,用AI去辅助教师更好、更便捷地教学。大语言模型是AI发展的最成果之一,其中包括:1、生成人工智能(AI-GeneratedContent)2、大语言模型(LargeLanguageModel,LLM)3、ChatGPT(gpt-GenerativePre-trainedTransformer)PPT辅助:1、MINDSHOW:https://www.......
  • python-黑马程序员 初学者笔记(持续更新10.15)
    序章:由于科研室鼓励我们发布csdn,因此我们将一起学习python,这是我的笔记给大家分享出来,这不适用于一点都不会的小白,如果你看过一次或者想要回顾一下python内容再或者你正学习pyhon,可以参考本片笔记,本文章的优势在于是初学者所写,可能对于我们来说有共鸣,比较详细,并且重要知识点都......
  • mac10.15 突然 vscode打不开了?
    问题描述mac上vscode前一天还用的好好的,第二天突然软件都打不开了解决过程1、第一步:重启电脑(无效)2、第二步:卸载vscode重新安装(依旧无效)3、查阅百度上的方法全部无效百度了大半天都没有找到解决方案,最后参考git发现用户留言在mac上1.91版本会导致运行奔溃,最后安装1.......
  • macos 10.15系统下载包,macOS Catalina for mac
    macOSCatalina让你喜欢的种种Mac体验都更进一步。你可以领略音乐、播客这两款全新Macapp的表演;在Mac上畅享各款自己心爱的iPadapp;拿起iPad和ApplePencil,拓展工作空间,释放创意灵感;再打开那些平时常用的app,试试各种巧思妙想的新功能。现在,你在Mac上所做的一切,......
  • 私有云和多云管理平台 | Cloudpods v3.10.15 正式发布
    功能优化【主机】裸金属详情页增加部分属性信息【监控】优化告警策略,支持同时设置多监控指标【主机】支持透传设备自动探测【主机】LVM块存储支持快照【监控】简化Telegraf容器的挂载点【主机】新建VMware支持同时填写备注信息【存储】KVM支持对接LVM存储问题修......
  • 用于 VMware 的 macOS Catalina 10.15.5 可引导 iso 百度网盘 下载
    基于MAS原版app制作,安全无添加,无任何logo,文件体积小(xz压缩后不到350M),适合长期持有。版本:macOSCatalina10.15.5(19F96)-2020-05-26百度网盘链接:https://sysin.org/blog/macOS-Catalina-boot-iso/说明:两个压缩文件是一样的,一个zip一个xz格式。附:可用的VMware软件下载链接Server......
  • macOS Catalina 10.15.5 正式版 下载 百度网盘 6月1日 补充更新
    macOSCatalina10.15.5正式版下载百度网盘6月1日补充更新macOSCatalina10.15.5=(19F101)06/01/2020下载链接:https://sysin.org/blog/macOS-Catalina/基于MAS原版app制作,安全无添加,无任何logo。看来是封堵了unc0verjailbreaktool。macOSCatalina10.15.5Supplement......
  • 10.15
    虽然SQL是一门ANSI(AmericanNationalStandardsInstitute美国国家标准化组织)标准的计算机语言,但是仍然存在着多种不同版本的SQL语言。然而,为了与ANSI标准相兼容,它们必须以相似的方式共同地来支持一些主要的命令(比如SELECT、UPDATE、DELETE、INSERT、WHERE等等)。要创......