使用Python实现SVM来解决二分类问题

news2024/11/28 9:21:40

下面是一个使用Python实现SVM来解决二分类问题的例子:

# 导入所需的库
from sklearn.datasets import make_blobs
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
import matplotlib.pyplot as plt

# 生成一个二分类数据集
X, y = make_blobs(n_samples=100, centers=2, random_state=42)

# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建并训练SVM模型
svm = SVC(kernel='linear')
svm.fit(X_train, y_train)

# 在测试集上进行预测
y_pred = svm.predict(X_test)

# 绘制数据点和分隔超平面
plt.scatter(X[:, 0], X[:, 1], c=y, cmap='bwr')
ax = plt.gca()
xlim = ax.get_xlim()
ylim = ax.get_ylim()
xx = np.linspace(xlim[0], xlim[1], 30)
yy = np.linspace(ylim[0], ylim[1], 30)
YY, XX = np.meshgrid(yy, xx)
xy = np.vstack([XX.ravel(), YY.ravel()]).T
Z = svm.decision_function(xy).reshape(XX.shape)
ax.contour(XX, YY, Z, colors='k', levels=[-1, 0, 1], alpha=0.5,
               linestyles=['--', '-', '--'])
ax.scatter(svm.support_vectors_[:, 0], svm.support_vectors_[:, 1], s=100,
                   linewidth=1, facecolors='none', edgecolors='k')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.title('SVM Classifier')
plt.show()

在此示例中,我们使用make_blobs函数生成一个包含两个类别的二分类数据集。然后,我们使用train_test_split函数将数据集拆分为训练集和测试集。接下来,我们创建了一个SVC对象作为SVM模型,并使用fit方法对模型进行训练。然后,我们使用训练好的模型在测试集上进行预测,并将预测结果保存在y_pred变量中。

最后,我们使用Matplotlib库绘制数据点和分隔超平面。scatter函数用于绘制数据点,不同类别的点使用不同的颜色表示。decision_function方法用于计算分隔超平面,然后使用contour函数绘制分隔超平面。同时,我们还使用support_vectors_属性绘制了支持向量的圆圈表示。

请确保在运行代码之前安装所需的库(如scikit-learn和Matplotlib)。此代码可根据实际问题进行调整和扩展。

如果你想更深入地了解人工智能的其他方面,比如机器学习、深度学习、自然语言处理等等,也可以点击这个链接,我按照如下图所示的学习路线为大家整理了100多G的学习资源,基本涵盖了人工智能学习的所有内容,包括了目前人工智能领域最新顶会论文合集和丰富详细的项目实战资料,可以帮助你入门和进阶。

人工智能交流群(大量资料)
在这里插入图片描述

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

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

相关文章

Linux 启动过程

linux启动步骤&#xff1a; <1>加电 <2>加载bios设置 <3>加载grup <4>加载内核系统到内存中 <5>加载配置文件 <6>加载内核模块 <7>完成相应的初始化工作和启动相应的服务 <8>启动系统进程 <9>出现登录界面 &l…

第三方发起备份的ORA-00245问题

文章目录 前言一、信息确认共享目录位置控制文件快照位置节点1节点2 二、RAC修改snapshot controlfile 参数三、字典表确认以及测试 前言 在使用 AnyBackup 管理控制台发起 Oracle RAC 数据库备份后&#xff0c;在任务历史记录 > 执行输出中显示如下错误信息&#xff1a; c…

NX二次开发UF_MTX3_multiply_t 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_MTX3_multiply_t Defined in: uf_mtx.h void UF_MTX3_multiply_t(const double mtx1 [ 9 ] , const double mtx2 [ 9 ] , double mtx_product [ 9 ] ) overview 概述 Returns a…

14.spring源码解析-postProcessBeanFactory

此方法允许子类在所有的bean尚未初始化之前注册BeanPostProcessor。空实现且没有子类覆盖。

一种方便、优美的使用Python调用fofa API的方法

免责声明&#xff1a;由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c; 文章作者不为此承担任何责任。 学习网络安全的过程中&#xff0c;绕不开fofa搜索&#xff0c;我的需求是使用fofa获取互联网所…

docker的理解

docker最底层就是bootfs(boot file system)主要包含 bpotloader 和 kernel&#xff0c;bootloader主要是引导加载 kernel&#xff0c;Linux 刚启动时会加载 bootfs文件系统&#xff0c;在Docker镜像的最底层是bootfs。这一层与我们典型的Linux/Unix系统是一样的&#xff0c;包含…

儿童台灯怎么选对眼睛好?专业儿童护眼台灯分享

随着时代的改革和发展&#xff0c;现在的孩子学业压力要远比我们想象中的繁重很多&#xff0c;而且随着年龄的增长&#xff0c;用眼到需求也会越来越大。再加上过早的接触电子产品&#xff0c;导致现在的孩子近视率都非常高&#xff01; 因此作为家长一定要重视孩子的视力健康&…

C语言进阶指南(11)(指针数组与二维数组)

*欢迎来到博主的专栏——C语言进阶指南 博主id&#xff1a;reverie_ly 文章目录 N级指针指针数组指针数组与二维数组数组指针作为函数的参数 N级指针 指针变量是一个存放地址的变量&#xff0c;在C语言中&#xff0c;每个变量都会有一个地址值。所以指针变量也有一个地址。 …

《git小白笔记·一》记住这些Git使用就够了

到底选gitlab还是选github&#xff1f;&#xff1a; 只要掌握这些git命令完全够用&#xff1a; &#xff08;1&#xff09;首先我们先下载一个git&#xff0c;下载完成后属于右键会看到git GUI here和git Bash here&#xff0c;我们常用git Bash here&#xff0c;打开Git我们看…

TDA4VM LInux SDK编译

文章目录 前言编译步骤前言 上篇TDA4VM EVM开发板调试笔记我们尝试把EVM开发板跑起来了,本篇主要记录,Linux SDK 的编译过程。 编译步骤 安装依赖: $ sudo apt-get update $ # Install packages required for builds $ sudo apt-get -f -y install \

使用React+SpringBoot开发一个协同编辑的表格文档

本文由葡萄城技术团队发布。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 前言 随着云计算和团队协作的兴起&#xff0c;协同编辑成为了许多企业和组织中必不可少的需求。通过协同编辑&#x…

Spring Boot + MyBatis-Plus实现数据库读写分离

文章目录 1. 引言2. MyBatis-Plus简介3. 准备工作4. 配置数据源5. 配置MyBatis-Plus6. 创建实体类和Mapper接口7. 编写Service8. 控制器层9. 测试10. 数据库读写分离的原理11. 拓展11.1. 动态数据源11.2. 多数据源事务管理11.3. 多租户支持 12. 总结 &#x1f389;Spring Boot …

ubuntu安装远程桌面

ubuntu安装远程桌面 xrdp远程桌面访问 #用windows远程桌面连接成功,只能用root用户,用普通用户连接是灰色 sudo apt install xrdp systemctl status xrdpsystemctl stop xrdp解决普通用户连接是灰色 参考链接: https://blog.csdn.net/leegh1992/article/details/51160864 s…

图像异常检测研究现状综述

论文标题&#xff1a;图像异常检测研究现状综述 作者&#xff1a;吕承侃 1, 2 沈 飞 1, 2, 3 张正涛 1, 2, 3 张 峰 1, 2, 3 发表日期&#xff1a;2022年6月 阅读日期 &#xff1a;2023年11月28 研究背景&#xff1a; 图像异常检测是计算机视觉领域的一个热门研究课题, 其目…

C语言进阶指南(13)(字符串与指针)

欢迎来到博主的专栏——C语言进阶指南 博主id&#xff1a;reverie_ly 文章目录 字符串字符串与字符数组字符串与指针常量字符串字符串的输入与输出字符串的输出字符串的输入 实现存放字符串的数组 字符串 字符串是由一连串字符组成的字符数据&#xff0c;C语言中并没有给字符…

Kafka 保证消息消费全局顺序性

当有消息被生产出来的时候&#xff0c;如果没有指定分区或者指定 key &#xff0c;那么消费会按照【轮询】的方式均匀地分配到所有可用分区中&#xff0c;但不一定按照分区顺序来分配 我们知道&#xff0c;在 Kafka 中消费者可以订阅一个或多个主题&#xff0c;并被分配一个或多…

【预测爆款不用愁,有服饰RFID小助手】

时尚服饰行业库存成本高&#xff0c;数据不精准&#xff0c;爆款服饰一直抓不住&#xff0c;增加库存滞销风险难脱逃&#xff0c;给服饰零售企业带来极大困扰。 帮您提前预测爆款服饰小塔服饰RFID系统 小塔RFID系统作为服饰新零售小助手&#xff0c;通过RFID系统与硬件结合&a…

Vue3 Teleport

假设情景 以下面截图为例&#xff0c;A组件中可以操控数字的加减&#xff0c;想把这个功能放到B组件中使用&#xff0c;AB两个组件非父子组件&#xff0c;甚至可能被嵌套了其他组件&#xff0c;一般办法可能是将A组件数据传给AB组件的父组件&#xff0c;然后在相办法给B&#…

贝叶斯Sklearn实践

贝叶斯统计学是一种基于贝叶斯定理的概率推理方法&#xff0c;它提供了一种对概率进行建模和更新的框架。贝叶斯方法在机器学习中得到了广泛的应用&#xff0c;特别是在分类问题中&#xff0c;如垃圾邮件过滤、文本分类等。与传统的频率主义方法相比&#xff0c;贝叶斯方法具有…

【PyQt】QPixmap与numpy.array互转

这里给出QPixmap→numpy.ndarray的两条转换(一个是使用PIL.Image而另一个不用)&#xff0c; 以及numpy.ndarray→QPixmap两条转换(同样也是用不用PIL.Image的区别)。 代码运行结果&#xff1a; from PyQt5.QtCore import QPoint,QRect,Qt from PyQt5.QtWidgets import QLabel …