sklearn光速入门实践[1]——实现一个简单的SVM分类器

2024-08-26 14:32

本文主要是介绍sklearn光速入门实践[1]——实现一个简单的SVM分类器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

python的sklearn库封装了许多常用的机器学习算法,而且入门简单,调用方便。下面我们用sklearn库和简单的几个点作为数据集,来实现一个简单的SVM分类器。

首先,准备好数据。我们把(2,0),(0,2),(0,0)这三个点当作类别1;(3,0),(0,3),(3,3)这三个点当作类别2,训练好SVM分类器之后,我们预测(-1,-1),(4,4)这两个点所属的类别。示意图如下:
在这里插入图片描述

1、组装数据集。

在组装数据集的时候,这里最重要的就是要注意数据的组合格式。data中每行元素作为一个样本,各列分别是该样本的各个属性,比如上边的几个点,封装成如下格式:x = np.array([[2,0],[0,2],[0,0],[3,0],[0,3],[3,3]]) 。label排成一行,与data中的数据相对应即可:y = np.array([1,1,1,2,2,2])

【注】:这里利用Pandas进行封装也可以。

import pandas as pd
data = np.array([[2,0,1],[0,2,1],[0,0,1],[3,0,2],[0,3,2],[3,3,2]])
data = pd.DataFrame(data,column = [0,1,2])
x = data[[0,1]]
y = data[2]
2、设置SVM分类器的属性

model = SVC(kernel='linear', probability=True)
当probability=False时,没办法调用 model.predict_proba()函数
可选的属性列表:

  • 待完善1
  • 待完善2
3、执行SVM分类器

model.fit(x,y)

4、预测

pre = model.predict_proba(C)

最后,附完整代码如下:

from sklearn.svm import SVC
import numpy as np
x = np.array([[2,0],[0,2],[0,0],[3,0],[0,3],[3,3]])
y = np.array([1,1,1,2,2,2])
model = SVC(kernel='linear', probability=True)#probability=False时,没办法调用 model.predict_proba()函数
model.fit(data,label)
C = [[-1,-1],[4,4]]
pre = model.predict_proba(C)
print(pre)
pre1 = model.predict(C)
print(pre1)

结果如下:

[[0.62507004 0.37492996][0.33332917 0.66667083]]
[1 2]

可以看到,预测(-1,-1)的标签是1的概率为0.62507004,2的概率为0.37492996。最终预测为类别1。
预测(4,4)的标签是1的概率为0.33332917,2的概率为0.66667083。最终预测为类别2。这个结果与我们在图中直观看到的结果相符。

官方文档地址:sklearn.svm.SVC

这篇关于sklearn光速入门实践[1]——实现一个简单的SVM分类器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1108827

相关文章

Spring Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

PyQt6/PySide6中QTableView类的实现

《PyQt6/PySide6中QTableView类的实现》本文主要介绍了PyQt6/PySide6中QTableView类的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学... 目录1. 基本概念2. 创建 QTableView 实例3. QTableView 的常用属性和方法

PyQt6/PySide6中QTreeView类的实现

《PyQt6/PySide6中QTreeView类的实现》QTreeView是PyQt6或PySide6库中用于显示分层数据的控件,本文主要介绍了PyQt6/PySide6中QTreeView类的实现... 目录1. 基本概念2. 创建 QTreeView 实例3. QTreeView 的常用属性和方法属性

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

pandas中位数填充空值的实现示例

《pandas中位数填充空值的实现示例》中位数填充是一种简单而有效的方法,用于填充数据集中缺失的值,本文就来介绍一下pandas中位数填充空值的实现,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是中位数填充?为什么选择中位数填充?示例数据结果分析完整代码总结在数据分析和机器学习过程中,处理缺失数