【AI知识】有监督学习分类任务之支持向量机

1.支持向量机概念

支持向量机(Support Vector Machine, SVM) 是一种有监督学习算法,主要用于分类任务(也可用于回归任务,即支持向量回归,SVR)。SVM的核心思想是找到一个最优的超平面(hyperplane) 来将不同类别的数据分开,且最大化类别间边界(间隔),从而提高模型的泛化能力。

如,在二分类问题中,SVM的目标是找到一个最优的超平面(即决策边界),该平面能够将数据集中的正负类样本分开,下面都以二分类问题为例说明:

支持向量机的几个概念:

  • 超平面(Hyperplane) : 超平面将数据空间分割成两个部分。在二维空间中,超平面是一条直线;在三维空间中,超平面是一个平面;在高维空间中,超平面是一个维度比数据空间少1的超平面。对于一个二维空间中的分类问题,SVM的任务就是找到一个直线(超平面),将正负类样本分开。

  • 最大化间隔: SVM的关键思想是最大化分隔正负类的间隔。间隔是指从数据点到超平面的垂直距离。在SVM中,支持向量是距离决策边界最近的那些点,这些点决定了超平面的最优位置。假设我们的数据点有两个类别,+1 和 -1 类,我们希望找到一个超平面,使得这个平面把两类数据完全分开,并且两类数据到超平面的距离最大。

细节我有点看不懂了。。。。

SVM实例+可视化:

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# 创建线性可分数据集
def generate_linear_data():# 使用sklearn生成一个线性可分的数据集X, y = datasets.make_classification(n_samples=200, n_features=2, n_informative=2,n_redundant=0, n_clusters_per_class=1, class_sep=2)return X, y# 创建非线性可分数据集
def generate_nonlinear_data():# 使用sklearn生成一个非线性可分的数据集# 它生成的是一个包含两个类别的数据集,其中样本数据分布在两个同心圆形状的区域内X, y = datasets.make_circles(n_samples=200, noise=0.1, factor=0.5)return X, y# 绘制SVM的决策边界
def plot_decision_boundary(X, y, clf):h = 0.02  # 网格间距x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])Z = Z.reshape(xx.shape)plt.contourf(xx, yy, Z, alpha=0.3)plt.scatter(X[:, 0], X[:, 1], c=y, marker='o', edgecolors='k', s=50)plt.title("SVM Decision Boundary")plt.show()# 训练并可视化SVM模型
def train_and_visualize(X, y, kernel_type='linear'):# 切分数据集为训练集和测试集X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)# 数据标准化scaler = StandardScaler()X_train = scaler.fit_transform(X_train)X_test = scaler.transform(X_test)# 初始化SVM分类器clf = SVC(kernel=kernel_type)# 训练SVMclf.fit(X_train, y_train)# 打印支持向量信息print(f"Number of support vectors: {len(clf.support_)}")# 可视化决策边界plot_decision_boundary(X_train, y_train, clf)# 主函数
def main():# 1. 线性可分数据print("Training with linearly separable data...")X_linear, y_linear = generate_linear_data()train_and_visualize(X_linear, y_linear, kernel_type='linear')# 2. 非线性可分数据print("Training with non-linearly separable data...")X_nonlinear, y_nonlinear = generate_nonlinear_data()train_and_visualize(X_nonlinear, y_nonlinear, kernel_type='rbf')if __name__ == "__main__":main()

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

杭州乘云联合信通院发布《云计算智能化可观测性能力成熟度模型》

原文地址:杭州乘云联合中国信通院等单位正式发布《云计算智能化可观测性能力成熟度模型》标准 2024年12月3日,由全球数字经济大会组委会主办、中国信通院承办的 2024全球数字经济大会 云AI计算创新发展大会(2024 Cloud AI Compute Ignite&…

【经典】制造供应链四类策略(MTS、MTO、ATO、ETO)细说

关注作者 制造供应链的牛鞭问题与复杂问题主要是从两个方面解决,一是同步化供应链消减从需求到供应的放大效应,二是供应链细分,针对不同的客户、不同的需求供应的匹配策略来应对复杂性,更好的满足客户并以最低的总成本来实现。 对…

实时日志与发展:Elasticsearch 推出全新专用的 logsdb 索引模式

作者:来自 Elastic Mark Settle, George Kobar 及 Amena Siddiqi Elastic 最新发布的 logsdb 索引模式是专为日志管理优化的功能,旨在提升日志数据的存储效率、查询性能以及整体可用性。这个模式专注于满足现代日志处理需求,提供更高效的日志…

React Image Crop——在React应用中轻松实现图片裁剪功能

React Image Crop是一个用于在React应用程序中裁剪和调整图像的库。它提供了一个简单而强大的界面,允许用户选择和调整裁剪区域,并生成裁剪后的图像。 什么是React Image Crop? React Image Crop是一个开源的React组件,用于在浏览…

Vue.js 中,前端如何处理从后端返回的 Excel 文件流

目的:页面中点击按钮实现下载excel文件 步骤: 向后端发送请求: 使用 axios(或其他 HTTP 客户端)向后端发送请求以获取文件。通常,文件会以 Blob 形式返回。 处理响应数据: 将响应数据(Blob 对象)处理为下载链接,并模拟点击以触发下载。 具体步骤: 1. 安装 axios(…

【HarmonyOS】鸿蒙应用实现手机摇一摇功能

【HarmonyOS】鸿蒙应用实现手机摇一摇功能 一、前言 手机摇一摇功能,是通过获取手机设备,加速度传感器接口,获取其中的数值,进行逻辑判断实现的功能。 在鸿蒙中手机设备传感器ohos.sensor (传感器)的系统API监听有以下&#xf…

微积分复习笔记 Calculus Volume 2 - 3.7 Improper Integrals

3.7 Improper Integrals - Calculus Volume 2 | OpenStax

box 提取

box 提取 import json import os import shutilimport cv2 import numpy as np import pypinyinclass Aaa():passdef pinyin(word):s for i in pypinyin.pinyin(word, stylepypinyin.NORMAL):s .join(i)return s if __name__ __main__:selfAaa()base_dirrE:\data\dao\20241…

ViewModel

ViewMode是MVVM架构模式中VM层对应的类,它的作用是存储界面数据,并和界面发生数据交互。ViewModel能感知生命周期,并且在界面由于配置问题发生重建时候,可以保持当前的数据不变。生命周期如下: ViewMode由ViewModePr…

ESP32-S3模组上跑通ES8388(29)

接前一篇文章:ESP32-S3模组上跑通ES8388(28) 二、利用ESP-ADF操作ES8388 2. 详细解析 上一回解析到了es8388_init函数中的第11段也是最后一段代码,没有解析完,本回继续解析。为了便于理解和回顾,再次贴出该片段,在components\audio_hal\driver\es8388\es8388.c中,如下…

C#—索引器

C#—索引器 索引器(Indexer)是类中的一个特殊成员,它能够让对象以类似数组的形式来操作,使程序看起来更为直观,更容易编写。索引器与属性类似,在定义索引器时同样会用到 get 和 set 访问器,不同…

智慧城市道路分割数据集labelme格式2648张1类别

数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):2648 标注数量(json文件个数):2648 标注类别数:1 标注类别名称:["road"] 每个类别标注的框数&#x…

YOLOv5+pyqt5+摄像头在特定条件下进行目标检测并采集原始数据

项目介绍 项目地址 GitHub - biabu0/Yolov5_D435i: 通过YOLOV5与pyqt5实现一个使用D435i深度摄像头采集特定需求与场景下的深度数据的小程序 通过YOLOV5对指定的区域进行检测,当检测到目标进入特定区域时,开始保存数据,摄像头采用D435i深度…

图像的放缩比率如何计算的?

图像的放缩比率如何计算关键点 在医疗软件的胶片打印中,图像放缩比率的计算需要更加精确和考虑更多因素,以确保最终打印出来的影像准确无误,符合诊断要求。 以下是一些关键点: 像素间距(Pixel Spacing)&a…

leetcode-73.矩阵置零-day5

class Solution {public void setZeroes(int[][] mat) {int m mat.length, n mat[0].length;// 1. 扫描「首行」和「首列」记录「首行」和「首列」是否该被置零boolean r0 false, c0 false;for (int i 0; i < m; i) {if (mat[i][0] 0) {r0 true;break;}}for (int j …

uni-app H5端使用注意事项 【跨端开发系列】

&#x1f517; uniapp 跨端开发系列文章&#xff1a;&#x1f380;&#x1f380;&#x1f380; uni-app 组成和跨端原理 【跨端开发系列】 uni-app 各端差异注意事项 【跨端开发系列】uni-app 离线本地存储方案 【跨端开发系列】uni-app UI库、框架、组件选型指南 【跨端开…

相机不动,机构动作----Hands Eyes

最近在研究 手眼标定&#xff0c;发现大家都需付费&#xff0c;搞啥子&#xff0c;说好的开源。。。 以相机在上固定不动&#xff0c;机械手为 EPSON_Robot 为例&#xff0c;详细的一步一步实例操作指引 EPSON_Robot 的192.168.0.1 2004 Server 详细操作步骤 1. 启动程序 运…

DCDC降压模块

一、项目介绍 在B站看到工科男孙老师发的DCDC模块视频&#xff0c;后面有提到这款芯片&#xff0c;于是就使用这款芯片自己设计了这款降压模块。 芯片的封装为TSOT23-8&#xff0c;对空间利用率高。 输入电压的范围为3-18V。 输出电压的范围为0-8V。 输出电流最…

QILSTE H8-316QFO高亮橙光LED灯珠 发光二极管LED

在当今电子技术领域&#xff0c;H8-316QFO型号的LED以其卓越的性能和可靠性 脱颖而出。本文将深入探讨这款LED的关键参数&#xff0c;以期为工程师和技术人员提供详尽的技术参考。 首先&#xff0c;H8-316QFO的物理特性不容忽视。其外观尺寸为3.2x1.5x0.8mm&#xff0c;小巧的…

康耐视智能相机(Insight)通过ModbusTCP发送字符串到倍福(BECKHOFF)PLC中

文章目录 1.背景2.分析3.实现3.1.PLC的ModbusTCP_Server3.1.1.安装TF6250-Modbus-TCP3.1.2.PLC设置 3.2.智能相机的ModbusTCP_Client3.2.1.了解ModbusTCP的协议3.2.2.根据协议写代码3.2.2.1.纯函数代码3.2.2.2.脚本代码 3.2.3.非脚本处理时的代码逻辑图3.2.4.关于代码的问题及解…