python:用 sklearn SVM 构建分类模型,并评价

编写 test_sklearn_5.py 如下

# -*- coding: utf-8 -*-
""" 使用 sklearn 估计器构建分类模型,并评价 """
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler# 1.加载 datasets 中的乳腺癌数据集
cancer = datasets.load_breast_cancer()
#print(len(cancer))
#print(type(cancer))
# 数据集的数据
cancer_data = cancer['data']
#print('breast_cancer_data:','\n', data)
# 数据集的标签
target = cancer['target']
#print('breast_cancer_target:','\n', target)
# 数据集的特征名称
feature_names = cancer['feature_names']
#print('breast_cancer_feature_names:','\n', feature_names)# 2.将数据集划分为训练集和测试集
# 使用 train_test_split 划分数据集
data_train,data_test,target_train,target_test = \train_test_split(cancer_data, target, test_size=0.2, random_state=42)
# 数据标准化
stdScaler = StandardScaler().fit(data_train)
trainStd = stdScaler.transform(data_train)
testStd = stdScaler.transform(data_test)
# 建立 SVM 模型
svm = SVC(C=1.0).fit(trainStd, target_train)
print(" SVM model:\n", svm)
# 预测训练集结果
cancer_target_pred = svm.predict(testStd)
print("前20个结果:\n", cancer_target_pred[:20])# 将预测结果和真实结果做比对,求出预测对的结果和预测错的结果,并求出准确率
# 求出预测对的结果
dui = np.sum(cancer_target_pred == target_test)
print("预测对的结果数为:", dui)
print("预测错的结果数为:", target_test.shape[0]-dui)
print("预测结果的准确率为:", dui/target_test.shape[0])# 分类模型常用评价方法
from sklearn.metrics import accuracy_score,precision_score,recall_score,f1_score,cohen_kappa_score
score = accuracy_score(target_test, cancer_target_pred)
print("用SVM 预测 breast_cancer 数据的准确率:", score)
score = precision_score(target_test, cancer_target_pred)
print("用SVM 预测 breast_cancer 数据的精确率:", score)
score = recall_score(target_test, cancer_target_pred)
print("用SVM 预测 breast_cancer 数据的召回率:", score)
score = f1_score(target_test, cancer_target_pred)
print("用SVM 预测 breast_cancer 数据的F1数值:", score)
score = cohen_kappa_score(target_test, cancer_target_pred)
print("用SVM 预测 breast_cancer 数据的 Cohen's Kappa 系数:", score)# 分类模型评价报告
from sklearn.metrics import classification_report
print("用SVM 预测 breast_cancer 数据的分类评价报告:\n",\classification_report(target_test, cancer_target_pred))# 绘制 ROC 曲线
from sklearn.metrics import roc_curve
# 求出 ROC 曲线的x轴和y轴
fpr, tpr, threholds = roc_curve(target_test, cancer_target_pred)
plt.figure(figsize=(10,6))
plt.xlim(0,1)
plt.ylim(0.0,1.1)
plt.xlabel('False Postive Rate')
plt.ylabel('True Postive Rate')
plt.plot(fpr,tpr, linewidth=2,linestyle='-',color='red')
plt.show()

运行 python test_sklearn_5.py 

(base) D:\python> python test_sklearn_5.pySVM model:SVC()
前20个结果:[1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0]
预测对的结果数为: 112
预测错的结果数为: 2
预测结果的准确率为: 0.9824561403508771
用SVM 预测 breast_cancer 数据的准确率: 0.9824561403508771
用SVM 预测 breast_cancer 数据的精确率: 0.9726027397260274
用SVM 预测 breast_cancer 数据的召回率: 1.0
用SVM 预测 breast_cancer 数据的F1数值: 0.9861111111111112
用SVM 预测 breast_cancer 数据的 Cohen's Kappa 系数: 0.9623140495867769
用SVM 预测 breast_cancer 数据的分类评价报告:precision    recall  f1-score   support0       1.00      0.95      0.98        431       0.97      1.00      0.99        71accuracy                           0.98       114macro avg       0.99      0.98      0.98       114
weighted avg       0.98      0.98      0.98       114

参考书:【Python 数据分析与应用】第6章 使用 scikit-learn 构建模型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/64243.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java多线程与线程池技术详解(十)

拥有梦想,即拥有了生命的火种。 梦想是一座高山,攀爬起来虽然艰辛,但一旦到达顶峰,你的努力就将被铭记于人心。 梦想是一个拼图,每一次努力都是一块拼图,最终汇成一个完整的梦想。 梦想是你的信念&#xff…

后端-redis在springboot项目中的使用步骤

redis在springboot项目中的使用场景 如果再创建一张包含状态的表,里面就有两个字段一个id,一个状态,太浪费,那就使用redis存储, 设置营业状态打烊还是营业中

Elasticsearch之mapping属性设置讲解与实战

Elasticsearch之Mapping属性设置讲解与实战 1. 引言 1.1 博客目的与读者定位 本篇技术博客旨在为Elasticsearch的中级用户及开发者提供一个深入浅出的Mapping属性设置指南。无论您是正在构建新的搜索应用,还是希望优化现有Elasticsearch集群的性能,本文都将为您提供详尽的…

解读Modbus TCP指令

解读Modbus TCP指令:[0x01, 0x00, 0x00, 0x00, 0x04, 0x06, 0x01, 0x10, 0x00, 0xC8, 0x00, 0x02, 0x04, 0x00, 0x01, 0x00, 0x01] 在Modbus TCP通信中,数据以字节流的形式传输。理解和解析这些字节对于调试和开发至关重要。本文将详细解析给定的Modbus…

【鸿蒙实战开发】数据的下拉刷新与上拉加载

本章介绍 本章主要介绍 ArkUI 开发中最常用的场景下拉刷新, 上拉加载,在本章中介绍的内容在实际开发过程当中会高频的使用,所以同学们要牢记本章的内容。下面就让我们开始今天的讲解吧! List 组件 在 ArkUI 中List容器组件也可以实现数据滚动的效果&a…

ElasticSearch 常见故障解析与修复秘籍

文章目录 一、ElasticSearch启动服务提示无法使用root用户二、ElasticSearch启动提示进程可拥有的虚拟内存少三、ElasticSearch提示用户拥有的可创建文件描述符太少四、ElasticSearch集群yellow状态分析五、ElasticSearch节点磁盘使用率过高,read_only状态问题解决六…

Motionface RTASR 离线实时语音识别直播字幕使用教程

软件使用场景: 直播、视频会议、课堂教学等需要实时字幕的场景。 1:系统要求 软件运行支持32位/64位windows 10/11系统,其他硬件要求无,无显卡也能实时识别字幕。 2:下载安装 链接:百度网盘 请输入提取码 提取码&#…

Https身份鉴权(小迪网络安全笔记~

附:完整笔记目录~ ps:本人小白,笔记均在个人理解基础上整理,若有错误欢迎指正! 5.2 Https&身份鉴权 引子:上一篇主要对Http数据包结构、内容做了介绍,本篇则聊聊Https、身份鉴权等技术。 …

Linux 中的 mkdir 命令:深入解析

在 Linux 系统中,mkdir 命令用于创建目录。它是文件系统管理中最基础的命令之一,广泛应用于日常操作和系统管理中。本文将深入探讨 mkdir 命令的功能、使用场景、高级技巧,并结合 GNU Coreutils 的源码进行详细分析。 1. mkdir 命令的基本用法…

【实验】【H3CNE邓方鸣】交换机端口安全实验+2024.12.11

实验来源:邓方鸣交换机端口安全实验 软件下载: 华三虚拟实验室: 华三虚拟实验室下载 wireshark:wireshark SecureCRT v8.7 版本: CRT下载分享与破解 文章目录 dot1x 开启802.1X身份验证 开启802.1X身份验证,需要在系统视图和接口视…

OpenCV实验篇:识别图片颜色并绘制轮廓

第三篇:识别图片颜色并绘制轮廓 1. 实验原理 颜色识别的原理: 颜色在图像处理中通常使用 HSV 空间来表示。 HSV 空间是基于人类视觉系统的一种颜色模型,其中: H(Hue):色调,表示颜色…

vue2-请求代理,动态target

当你在 Vue 2 项目中将 axios 的 baseURL 配置为 http://192.168.11.111:8762 时,所有请求都被认为是绝对路径请求,这种请求会直接发送到目标服务器, 跳过开发服务器的代理。 baseURL具体值 这就是为什么代理配置无法拦截 /exportPdf 的原因…

算法-字符串-76.最小覆盖子串

一、题目 二、思路解析 1.思路: 滑动窗口!!! 2.常用方法: 无 3.核心逻辑: 1.特殊情况:s或t是否为空字符串 if(snull||tnull)return ""; 2.声明一个字符数组——用于记录对应字符出现…

【Unity技巧】如何设置屏幕最小宽度

在 Unity 中,设置屏幕最小宽度可以通过调整 Canvas 的 CanvasScaler 组件来控制 UI 元素的缩放,并确保 UI 在不同屏幕宽度下始终能保持适当的布局。 不过,如果你想要限制游戏的实际窗口宽度,通常是通过代码来实现的。例如&#x…

基于softmax回归的多分类

基于softmax回归的多分类任务是机器学习领域中的一种常见应用。softmax回归,又称多项逻辑回归或多类逻辑回归,是逻辑回归在多分类问题上的推广。以下是对基于softmax回归的多分类任务的详细解释: 一、softmax回归的原理 softmax回归的核心思想是通过softmax函数将输入数据…

BatchNorm 与 LayerNorm

文章目录 1. BatchNorm批量归一化2. LayerNorm层归一化3. BatchNorm 和 LayerNorm 对比4. BatchNorm 和 LayerNorm 怎么选择References 今天重看Transformer,发现里面提到了BatchNorm和LayerNorm两种归一化方法,在这儿做一下总结和整理。 1. BatchNorm批…

《机器学习》2.4假设检验 t分布 F分布

目录 t发布 注意是这个东西服从t分布 数据服从t分布通常是在以下情况下: 以下是一些具体的例子,说明在何种情况下数据会服从t分布: t检验 交叉验证t检验 样本方差​编辑 F分布(fisher Friedman检验是一种非参数统计方法&a…

java aspose word 模板根据数据导出pdf

支持以功能&#xff1a; 1、字符串占位符替换。 2、占位符循环替换。 3、图片替换。 4、基础图标&#xff0c;折现、饼图、柱状图。 本案例运行环境&#xff1a; 1、aspose word21.1版本。 2、jdk 18。 话不多说直接上代码。 <!-- 图表相关 --><dependency><gro…

Go 语言结构

Go 语言结构 Go 语言,也称为 Golang,是一种由 Google 开发和支持的静态类型、编译型编程语言。它于 2009 年首次发布,旨在提高多核处理器、网络资源和大型代码库的性能。Go 语言以其简洁的语法、并发支持和强大的标准库而闻名,特别适合构建高性能的网络服务和分布式系统。…

安装与认识wireshark

免责声明 学习视频来自B 站 up 主泷羽 sec&#xff0c;如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识&#xff0c;以下代码、网站只涉及学习内容&#xff0c;其他的都与本人无关&#xff0c;切莫逾越法律红线&#xff0c;否则后果自负。 Wireshark安装入门之软件…