核方法 : 多项式核函数

一、定义

多项式核函数: 将数据映射到高维空间,从而实现 低维线性不可分 到 高维线性可分

二、核心代码介绍

1、关于 svm_clf.decision_function : 

2、关于 PolynomialFeatures(degree=3) : 

二、全量代码

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_moons
from sklearn.preprocessing import PolynomialFeatures
from sklearn.svm import SVCdef generate_non_linear_data():# 生成线性不可分的二维数据X, y = make_moons(n_samples=100, noise=0.15, random_state=42)return X, ydef plot_original_data(X, y):# 绘制原始数据(处理前)plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Spectral)plt.title("Original Data (Not Linearly Separable)")plt.xlabel("Feature 1")plt.ylabel("Feature 2")def train_svm_with_polynomial_kernel(X, y):# 创建多项式核函数对象(将数据映射到更高维度)poly_kernel = PolynomialFeatures(degree=3)X_poly = poly_kernel.fit_transform(X)# 使用支持向量机分类器(SVC)进行训练svm_clf = SVC(kernel="linear")svm_clf.fit(X_poly, y)return svm_clfdef plot_transformed_data(svm_clf, X, y):# 创建一个网格来覆盖数据的特征空间xx, yy = np.meshgrid(np.linspace(X[:, 0].min(), X[:, 0].max(), 200),np.linspace(X[:, 1].min(), X[:, 1].max(), 200))# 对网格中的每个点进行预测,确定其所属类别Z = svm_clf.decision_function(poly_kernel.transform(np.c_[xx.ravel(), yy.ravel()]))Z = Z.reshape(xx.shape)# 绘制处理后的数据(处理后)plt.contourf(xx, yy, Z, cmap=plt.cm.Spectral, alpha=0.8)plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Spectral)plt.title("Transformed Data (Linearly Separable)")plt.xlabel("Feature 1")plt.ylabel("Feature 2")def main():# 生成非线性数据X, y = generate_non_linear_data()# 绘制原始数据plt.figure(figsize=(12, 5))plt.subplot(1, 2, 1)plot_original_data(X, y)# 训练 SVM 模型并绘制决策边界svm_clf = train_svm_with_polynomial_kernel(X, y)plt.subplot(1, 2, 2)plot_transformed_data(svm_clf, X, y)plt.tight_layout()plt.show()if __name__ == "__main__":main()

三、结果展示

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

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

相关文章

python读取Excel内容并展示成json

shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 伙伴们,又是许久未曾见面了。最近也是在忙着加班,加上没有新技术的输入和产出&…

INFINI Gateway 如何防止大跨度查询

背景 业务每天生成一个日期后缀的索引,写入当日数据。 业务查询有时会查询好多天的数据,导致负载告警。 现在想对查询进行限制–只允许查询一天的数据(不限定是哪天),如果想查询多天的数据就走申请。 技术分析 在每…

Ubuntu 常用命令之 tar 命令用法介绍

📑Linux/Ubuntu 常用命令归类整理 tar 命令在 Ubuntu 系统中是用来打包和解包文件的工具。tar 命令可以将多个文件或目录打包成一个 tar 文件,也可以将 tar 文件解包成原来的文件或目录。 tar 命令的常用参数如下 c:创建一个新的 tar 文件…

Vue 实现响应式布局

实现响应式布局是工作中必不可少 客户需要 若是使用vue element ui 的方式实现 浏览器宽度为760的情况 浏览器宽度为360的情况 手机上的显示的情况 一、对于屏幕尺寸的定义 element UI参照Bootstrap的解决方案提供了五种屏幕大小尺寸:xs、sm、md、lg 和 xl。并对…

OpenCV与YOLO学习与研究指南

引言 OpenCV是一个开源的计算机视觉和机器学习软件库,而YOLO(You Only Look Once)是一个流行的实时对象检测系统。对于大学生和初学者而言,掌握这两项技术将大大提升他们在图像处理和机器视觉领域的能力。 基础知识储备 在深入…

行列式:方程组未知数的计算:克拉默法则

行列式:方程组未知数的计算 ![ ](https://img-blog.csdnimg.cn/direct/4a9c2800da3746ea95c1a3c93057d796.png)

桶装水送水小程序:提升服务质量的利器

随着移动互联网的发展,越来越多的消费者通过手机在线购物和订购商品。如果你是一名桶装水供应商,想要拓展线上业务,那么开发一个桶装水微信小程序将是一个明智的选择。本文将指导你从零开始开发一个桶装水微信小程序,让你轻松完成…

使用Docker一键部署Uptime Kuma,并将监控服务映射至公网访问

文章目录 **主要功能**一、前期准备本教程环境为:Centos7,可以跑Docker的系统都可以使用本教程安装。本教程使用Docker部署服务,如何安装Docker详见: 二、Docker部署Uptime Kuma三、实现公网查看网站监控四、使用固定公网地址访问…

PyQt6 QTimer计时器控件

锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计52条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版…

【什么是泛型,有什么好处】

✅什么是泛型,有什么好处 ✅典型回答✅泛型是如何实现的✅什么是类型擦除?📝C语言对泛型的支持📝泛型擦除的缺点有哪些? ✅对泛型通配符的理解📝泛型中上下界限定符 extends 和 super 有什么区别&#xff1…

汽车服务品牌网站建设的作用是什么

汽车服务涵盖多个层面,在保修维护这一块更是精准到了车内车外,无论是品牌商还是市场中各维修部,都能给到车辆很好的维修养护服务。如今车辆的人均拥有量已经非常高,也因此市场中围绕汽车相关的从业者也比较多。 首先就是拓客引流…

服务器数据恢复-昆腾存储StorNext文件系统下raid5数据恢复案例

服务器数据恢复环境: 昆腾某型号存储,StorNext文件存储系统。 共有9个分别配置了24块磁盘的磁盘柜,其中8个磁盘柜存放普通数据,1个磁盘柜存放元数据。 存放元数据的磁盘柜中的24块磁盘组建了8组RAID1阵列和1组4盘RAID10阵列&#…