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

下面是一个使用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.hqwc.cn/news/227598.html

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

相关文章

web:NewsCenter

题目 打开页面显示如下 页面有个输入框,猜测是sql注入,即search为注入参数点,先尝试一下 返回空白显示错误 正常显示如下 是因为单引号与服务端代码中的’形成闭合,输入的字符串hello包裹,服务端代码后面多出来一个‘导…

数据结构-交换排序(冒泡、快速)

冒泡排序 基本思想 先将第一个记录与第二个记录比较,将较大的记录放到第二个位置上,之后再将第二个记录与第三 个记录比较,将较大的记录放到第三个位置上,如此类推,知道比较完最后一个位置,此时注意到 …

C语言——输入两个正整数 m 和 n。求其最大公约数和最小公倍数。

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> int main() {int m, n;int i;int x 1;int y 0;printf("请输入两个正整数m和n&#xff1a;\n");scanf("%d,%d", &m, &n);for (i 1; i < m && i < n; i) {if (m % i 0 …

【C语言】-- 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

目录 题目 问题分析 代码 测试结果 题目 有一个已经排好序的数组。现输入一个数&#xff0c;要求按原来的规律将它插入数组中。 问题分析 首先判断此数是否大于最后一个数&#xff0c;然后再考虑插入中间的数的情况&#xff0c;插入后&#xff0c;此元素之后的数&#x…

Python3.6.8升级Python3.12.0版本小记

Python3.6.8 升级 Python3.12.0版本小记 前言一、查看系统已安装Python的相关信息二、升级Python三、解决问题记录&#xff1a;升级之后cmd查看python版本仍为原版本 叮嘟&#xff01;这里是小啊呜的学习课程资料整理。好记性不如烂笔头&#xff0c;今天也是努力进步的一天。一…

【从入门到起飞】JavaAPI—BigInteger,BigDecimal的使用方法

&#x1f38a;专栏【Java基础】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【The truth that you leave】 &#x1f970;欢迎并且感谢大家指出我的问题 文章目录 &#x1f381;BigInteger&#x1f354;获取BigInteger对象⭐获…

最透彻HTTPS

Why HTTPS 我们先来看看HTTP。HTTP&#xff08;Hypertext Transfer Protocol&#xff09;超文本传输协议&#xff0c;是一种用于分布式、协作式和超媒体信息系统的应用层协议&#xff0c;可以说 HTTP 是当代互联网通信的基础。 但是&#xff0c;HTTP 有着一个致命的缺陷&…

5.24每日一题(判断原函数是否为周期函数的基本定理 )

原函数为周期函数的充要条件&#xff1a;f(x)在某区间上的积分为0

96.STL-遍历算法 transform

目录 transform 语法&#xff1a; 功能描述&#xff1a; 函数原型&#xff1a; 代码示例&#xff1a; transform 是 C 标准模板库&#xff08;STL&#xff09;中的一个算法&#xff0c;用于对一个范围内的元素进行转换并将结果存储到另一个范围。以下是简要解释和一个示例…

Django项目部署本地windows IIS(详细版)和static文件设置(页面样式正常显示)

目录 必要条件&#xff1a; 一、下载并启用wfastcgi 二、window安装 IIS功能 三、IIS管理器中添加网站 1、复制项目 2、复制wfastcgi.py文件 3、创建文件web.config 4、添加网站&#xff0c;填写信息 5、启动fastcgi程序 6、修改进程标识 四、static文件设置和正确显…

Javaweb之Vue组件库Element之Form表单的详细解析

4.3.4 Form表单 4.3.4.1 组件演示 Form 表单&#xff1a;由输入框、选择器、单选框、多选框等控件组成&#xff0c;用以收集、校验、提交数据。 表单在我们前端的开发中使用的还是比较多的&#xff0c;接下来我们学习这个组件&#xff0c;与之前的流程一样&#xff0c;我们首…

美团2023年Q3财报:营收765亿元 即时零售订单量增至62亿笔

11月28日&#xff0c;美团(股票代码:3690.HK)发布2023年第三季度业绩&#xff0c;公司当季收入765亿元(人民币&#xff0c;下同)&#xff0c;较去年同比增长22.1%。基于提质增效的经营策略&#xff0c;主体业务表现稳固健康&#xff0c;带动公司整体经调整净利润为57.3亿元。 …