当前位置: 首页 > news >正文

Sklearn-使用SVC对iris数据集进行分类

Sklearn-使用SVC对iris数据集进行分类

  • iris数据集的加载
  • 训练svc模型
  • 输出混淆矩阵和分类报告
  • 使用Pipeline管道完成固定操作
    • 不使用Pipeline
    • 使用Pipeline

使用SVC对iris数据集进行分类预测
涉及内容包含:

  • 数据集的加载,训练集和测试集的划分
  • 训练svc模型,对测试集的预测
  • 输出混淆矩阵和分类报告
  • 使用Pipeline执行操作

iris数据集的加载

加载数据集
用DataFrame展示数据
划分训练集和测试集合

from sklearn.datasets import load_iris
iris = load_iris()
iris.keys()
dict_keys(['data', 'target', 'frame', 'target_names', 'DESCR', 'feature_names', 'filename'])
data = iris['data']
target = iris['target']# 以DataFrame显示所有的数据
import pandas as pd
df = pd.DataFrame(data,columns=iris['feature_names']) 
df['target'] = target # 添加target列
sepal length (cm)sepal width (cm)petal length (cm)petal width (cm)target
05.13.51.40.20
14.93.01.40.20
24.73.21.30.20
34.63.11.50.20
45.03.61.40.20
..................
1456.73.05.22.32
1466.32.55.01.92
1476.53.05.22.02
1486.23.45.42.32
1495.93.05.11.82

150 rows × 5 columns

# 划分数据集:训练集和测试集
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test = train_test_split(data,target,test_size=0.3) # 测试集占30%。训练集70%

训练svc模型

  • 导入库文件
  • 初始化svc
  • 训练svc
from sklearn.svm import SVC
# 初始化SVC
svc = SVC()
# 训练
svc.fit(x_train,y_train)
# 查看训练效果
print("训练集的精度",svc.score(x_train,y_train))
# 对测试集预测的精度
print("对测试集的预测效果:",svc.score(x_test,y_test))# 对测试集进行预测
y_pre = svc.predict(x_test)
# 表格对比预测与实际结果
df2 = pd.DataFrame(data = {'predict':y_pre,'true':y_test
})
训练集的精度 0.9714285714285714
对测试集的预测效果: 0.9555555555555556

输出混淆矩阵和分类报告

  • 输出混淆矩阵:查看每个类预测的成功与失败的情况
  • 输出分类报告:查看分类的性能
from sklearn.metrics import confusion_matrix# 输出混淆矩阵
con_matrix = confusion_matrix(y_test,y_pre)
print(con_matrix)
[[12  0  0][ 0 15  1][ 0  1 16]]
from sklearn.metrics import classification_report
# 输出分类报告
report = classification_report(y_test,y_pre,target_names=iris['target_names'])
print(report)
              precision    recall  f1-score   supportsetosa       1.00      1.00      1.00        12versicolor       0.94      0.94      0.94        16virginica       0.94      0.94      0.94        17accuracy                           0.96        45macro avg       0.96      0.96      0.96        45
weighted avg       0.96      0.96      0.96        45

使用Pipeline管道完成固定操作

  • 增加对数据的归一化处理
  • 将对数据的归一化处理和训练处理放在pipeline中完成

不使用Pipeline

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.preprocessing import StandardScaler iris = load_iris()
data = iris['data']
target = iris['target']# 划分数据集:训练集和测试集
x_train,x_test,y_train,y_test = train_test_split(data,target,test_size=0.3,random_state=42,stratify=target) # 测试集占30%。训练集70%# 特征变量标准化
# 由于支持向量机可能受特征变量取值范围影响,训练集与测试集的特征变量标准化
scaler = StandardScaler().fit(x_train)
x_train_s = scaler.transform(x_train)
x_test_s = scaler.transform(x_test)# 训练模型
svm = SVC()
svm.fit(x_train_s, y_train)
print("精确度:",svm.score(x_test_s, y_test))
精确度: 0.9333333333333333

使用Pipeline

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.svm import SVCfrom sklearn.preprocessing import StandardScaler 
from sklearn.pipeline import Pipeline
# from sklearn.pipeline import make_pipelineiris = load_iris()
data = iris['data']
target = iris['target']# 划分数据集:训练集和测试集
x_train,x_test,y_train,y_test = train_test_split(data,target,test_size=0.3,random_state=42,stratify=target) # 测试集占30%。训练集70%# 构造管道
pipe = Pipeline([('std_scaler',StandardScaler()),('svc',SVC())]
)
# 使用管道
pipe.fit(x_train,y_train)
# 预测
print("精度为:",pipe.score(x_test,y_test))
精度为: 0.9333333333333333

相关文章:

Sklearn-使用SVC对iris数据集进行分类

Sklearn-使用SVC对iris数据集进行分类 iris数据集的加载训练svc模型输出混淆矩阵和分类报告使用Pipeline管道完成固定操作不使用Pipeline使用Pipeline 使用SVC对iris数据集进行分类预测 涉及内容包含: 数据集的加载,训练集和测试集的划分训练svc模型,对测试集的预测…...

项目经理必读:领导风格对项目成功的关键影响

引言 项目经理作为一个领导者的角色,他们需要协调各方资源,管理团队,推动项目的进行。为了完成这些任务,项目经理必须具备各种领导风格的灵活性,以应对项目中的各种变数和挑战。在这篇文章中,我们将讨论领…...

行业追踪,2023-08-04

自动复盘 2023-08-04 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…...

双链表(带哨兵位头节点)

目录 ​编辑 双链表的初始化: 双链表的打印: 双链表的尾插: 双链表的头插: 双链表的尾删: 双链表的头删: 双链表pos位置之前的插入: 双链表pos位置的删除: 关于顺序表和链表…...

MySQL - LOAD DATA LOCAL INFILE将数据导入表中和 INTO OUTFILE (速度快)

文章目录 一、语法介绍二、数据分隔符介绍 :换行符说明: 三、示例LOAD DATA LOCAL INFILEINTO OUTFILE 总结 一、语法介绍 LOAD DATA[LOW_PRIORITY | CONCURRENT] [LOCAL]INFILE file_name[REPLACE | IGNORE]INTO TABLE tbl_name[PARTITION (partition_name [, par…...

String ,StringBulider ,StringBuffer

面试指北149 知乎 StringBuffer和StringBuilder区别详解(Java面试)_stringbuffer和stringbuilder的区别_辰兮要努力的博客-CSDN博客...

阶段总结(linux基础)

目录 一、初始linux系统 二、基本操作命令 三、目录结构 四、文件及目录管理命令 查看文件内容 创建文件 五、用户与组管理 六、文件权限与压缩管理 七、磁盘管理 八、系统程序与进程管理 管理机制 文件系统损坏 grub引导故障 磁盘资源耗尽 程序与进程的区别 查…...

HTTP(超文本传输协议)学习

关于HTTP补学 一、HTTP能干什么 通过下图能够直观的看出:“交换数据 ” 二、HTTP请求例子 一个 HTTP 方法,通常是由一个动词,像 GET、POST 等,或者一个名词,像 OPTIONS、HEAD 等,来定义客户端执行的动作。…...

23年7月工作笔记整理(前端)

目录 一、js相关二、业务场景学习 一、js相关 1.js中Number类型的最大值常量:Number.MAX_VALUE,最小值常量:Number.MIN_VALUE 2.巩固一下reduce语法:reduce(function(初始值或方法的返回值,当前值,当前值的索引,要累加的初始值))…...

pytorch学习——正则化技术——权重衰减

一、概念介绍 权重衰减(Weight Decay)是一种常用的正则化技术,它通过在损失函数中添加一个惩罚项来限制模型的复杂度,从而防止过拟合。 在训练参数化机器学习模型时, 权重衰减(weight decay)是…...

iTOP-RK3588开发板Ubuntu 系统交叉编译 Qt 工程-命令行交叉编译

使用源码 rk3588_linux/buildroot/output/rockchip_rk3588/host/bin/qmake 交叉编译 QT 工程。 最后烧写编译好的 buildroot 镜像,将编译好的 QT 工程可执行程序在 buildroot 系统上运行。 交叉编译 QT 工程如下所示,首先进入 QLed 的工程目录下。 然后…...

Java进阶——数据结构与算法之哈希表与树的入门小结(四)

文章大纲 引言一、哈希表1、哈希表概述2、哈希表的基本设计思想3、JDK中的哈希表的设计思想概述 二、树1、树的概述2、树的特点3、树的相关术语4、树的存储结构4.1、双亲表示法4.2、孩子兄弟表示法:4.3、孩子表示法:4.4、双亲孩子表示法 三、二叉树1、二…...

DataFrame中按某字段分类并且取该分类随机数量的数据

最近有个需求,把某个df中的数据,按照特定字段分类,并且每个分类只取随机数量数据,这个随机数量需要有范围限制。写出来记录下。 def randomCutData(self, df, startNum):grouped df.groupby(classify_label)df_sampled pd.Data…...

【c++】rand()随机函数的应用(一)——rand()函数详解和实例

c语言中可以用rand()函数生成随机数,今天来探讨一下rand()函数的基本用法和实际应用。 本系列文章共分两讲,今天主要介绍一下伪随机数生成的原理,以及在伪随机数生成的基础上,生成随机数的技巧,下一讲主要介绍无重复随…...

iOS——Block回调

先跟着我实现最简单的 Block 回调传参的使用,如果你能举一反三,基本上可以满足了 OC 中的开发需求。已经实现的同学可以跳到下一节。 首先解释一下我们例子要实现什么功能(其实是烂大街又最形象的例子): 有两个视图控…...

html学习6(xhtml)

1、xhtml是以xml格式编写的html。 2、xhtml与html的文档结构区别&#xff1a; DOCTYPE是强制性的<html>、<head>、<title>、<body>也是强制性的<html>中xmlns属性是强制性的 3、 元素语法区别&#xff1a; xhtml元素必须正确嵌套xhtml元素必…...

UML-活动图

目录 一.活动图概述: 1.活动图的作用&#xff1a; 2.以下场合不使用活动图&#xff1a; 3.活动图的基本要素&#xff1a; 4.活动图的图符 4.1起始状态 4.2终止状态 4.3状态迁移 4.4决策点 4.5同步条:表示活动之间的不同 5.活动图: 二.泳道&#xff1a; 1.泳道图&a…...

跨境电商怎么做?Live Market教你创业及做大生意

随着全球化的不断深入和互联网技术的迅猛发展&#xff0c;跨境电商成为了一个蓬勃发展的行业。根据eMarketer的数据&#xff0c;2021年全球跨境电商销售额将达到4.5万亿美元&#xff0c;预计到2025年将增长至6.3万亿美元。这表明&#xff0c;跨境电商行业将继续保持强劲增长的趋…...

Linux 4.19 和Linux 5.10 的区别

Linux 4.19和Linux 5.10是Linux内核的两个不同版本。它们之间有一些重要的区别&#xff0c;包括功能、性能和支持方面的改进。以下是一些常见的区别&#xff1a; 功能增强&#xff1a;Linux 5.10相对于4.19引入了许多新功能和增强。例如&#xff0c;Linux 5.10引入了BPF&#x…...

学习单片机的秘诀:实践与坚持

在学习单片机时&#xff0c;将实践与学习结合起来是一个很好的方法。不要一上来就死磕指令和名词&#xff0c;而是边学边做实验&#xff0c;循序渐进地理解和应用指令。通过实验&#xff0c;你能亲身感受到指令的控制效果&#xff0c;增强对单片机的理解和兴趣。 学习单片机不…...

山姆会员店商品数据监测方案:低代码采集+自动翻页实战(京东版)

山姆会员店商品数据智能监测系统&#xff1a;低代码解决方案与实战策略 站在商超零售研究的第一线&#xff0c;我常常需要面对一个现实问题&#xff1a;如何持续追踪山姆这类会员制超市的价格波动和品类变化&#xff1f;传统的数据采集方式要么需要投入大量开发资源&#xff0c…...

pinyin4j 实战:多音字精准匹配与优化策略

1. pinyin4j基础入门与多音字痛点 第一次接触pinyin4j是在2013年做电商搜索项目时&#xff0c;当时需要实现中文商品名的拼音搜索功能。这个轻量级的Java库确实帮了大忙&#xff0c;但很快就遇到了让人头疼的多音字问题。比如用户搜索"zhongqing"时&#xff0c;系统…...

抖音下载器终极指南:解锁无水印内容的高效获取之道

抖音下载器终极指南&#xff1a;解锁无水印内容的高效获取之道 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support.…...

Informer时序模型实战:从数据预处理到预测结果可视化

1. Informer时序模型入门指南 时序预测是AI领域一个经典问题&#xff0c;从股票价格到电力负荷&#xff0c;从气象数据到设备传感器读数&#xff0c;都需要预测未来趋势。传统方法如ARIMA在处理长期依赖时表现不佳&#xff0c;而Informer模型通过改进Transformer架构&#xff0…...

原神抽卡数据分析神器:告别手动记录,轻松掌握抽卡规律

原神抽卡数据分析神器&#xff1a;告别手动记录&#xff0c;轻松掌握抽卡规律 【免费下载链接】genshin-wish-export Easily export the Genshin Impact wish record. 项目地址: https://gitcode.com/GitHub_Trending/ge/genshin-wish-export 还在为原神抽卡记录无法导出…...

函数信号发生器在电路调试中的实战技巧

1. 函数信号发生器的核心功能解析 第一次接触函数信号发生器时&#xff0c;我盯着面板上密密麻麻的按钮发懵。这玩意儿不就是个能发出"滴滴"声的高级玩具吗&#xff1f;直到有次调试音频电路&#xff0c;用正弦波发现放大器在特定频率出现削顶失真&#xff0c;才真正…...

这才是AI的真实结构:90%的人都理解错了

&#x1f680; 这才是AI的真实结构&#xff1a;90%的人都理解错了 &#x1f9e0; 一、Qwen / GLM&#xff1a;AI世界的“操作系统层” 你看到的这些模型&#xff1a; &#x1f449; Qwen / GLM&#xff0c;本质就是 Transformer 架构的延伸 核心结构其实很简单&#xff1a; …...

intv_ai_mk11部署教程:GPU服务器中intv_ai_mk11服务健康检查脚本编写与定时巡检实践

intv_ai_mk11部署教程&#xff1a;GPU服务器中intv_ai_mk11服务健康检查脚本编写与定时巡检实践 1. 环境准备与快速部署 在开始编写健康检查脚本之前&#xff0c;我们需要先确保intv_ai_mk11服务已经正确部署在GPU服务器上。以下是快速部署步骤&#xff1a; 服务器要求&#…...

图图的嗨丝造相-Z-Image-Turbo教程:Xinference REST API对接Python脚本自动化生成流程

图图的嗨丝造相-Z-Image-Turbo教程&#xff1a;Xinference REST API对接Python脚本自动化生成流程 1. 引言&#xff1a;从手动点击到自动生成 如果你用过图图的嗨丝造相-Z-Image-Turbo这个模型&#xff0c;肯定体验过它的强大——输入一段描述&#xff0c;就能生成穿着大网渔…...

语音识别灰度发布:SenseVoice-Small ONNX模型A/B版本切换实践

语音识别灰度发布&#xff1a;SenseVoice-Small ONNX模型A/B版本切换实践 1. 项目背景与价值 在实际的语音识别服务部署中&#xff0c;我们经常需要更新模型版本以提升识别效果或修复问题。但直接全量切换新版本存在风险&#xff0c;可能导致服务不稳定或识别质量下降。灰度发…...