当前位置: 首页 > news >正文

支持向量机(SVM)在机器学习中的简单示例

目录

工作原理

核函数

SVM用于分类

结果分析

结论


❤❤❤动动发财的小手点点赞点点关注哦~~~❤❤❤

支持向量机是一种强大的监督学习模型,用于分类和回归任务。它通过找到数据点之间的最优边界来区分不同的类别。SVM特别适用于那些具有清晰边界但线性不可分的数据集。

一、工作原理

SVM的工作原理是通过一个超平面来分隔不同的类别,这个超平面的选择基于最大化边界的原则。在这个边界上的数据点被称为支持向量,它们是SVM模型的关键。

二、核函数

SVM的一个关键特性是核函数的使用,它允许模型在更高维的空间中寻找最优超平面,而无需显式地映射输入数据。常用的核函数包括线性核、多项式核、径向基函数(RBF)核等。

三、SVM用于分类

以下是使用Python的scikit-learn库实现SVM进行二分类问题的示例代码:

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score# 加载数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target# 只取前两个类别进行二分类
X = X[y != 2]
y = y[y != 2]# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 数据标准化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)# 创建SVM模型
svm_model = SVC(kernel='linear')  # 也可以使用'rbf', 'poly'等其他核函数# 训练模型
svm_model.fit(X_train, y_train)# 预测测试集
y_pred = svm_model.predict(X_test)# 评估模型
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy:.2f}')

四、结果分析

上述代码首先加载了Iris数据集,并将其转换为一个二分类问题。然后,使用StandardScaler进行数据标准化,以提高SVM模型的性能。接着,创建了一个使用线性核的SVM模型,并在训练集上进行训练。最后,使用测试集评估模型的准确性。

五、结论

SVM是一种非常有效的机器学习算法,尤其适用于高维数据和非线性问题。通过选择合适的核函数和调整模型参数,SVM可以在多种任务中提供出色的性能。

请注意,运行上述代码需要安装Python环境和scikit-learn库。您可以通过运行

pip install scikit-learn

来安装scikit-learn

 

http://www.lryc.cn/news/391110.html

相关文章:

  • 使用Anaconda虚拟环境安装Opencv、pytorch、torchvision踩坑记录
  • 【人工智能】CPU、GPU与TPU:人工智能领域的核心处理器概述
  • 【康复学习--LeetCode每日一题】3099. 哈沙德数
  • docker使用jdk21启动jar包报错
  • Object 类中的公共方法详解
  • python 字典 一个key 多 value 遍历
  • vue---基本原理(二)
  • 桂花网蓝牙网关X1000:引领物联网新时代的智能连接
  • JAVA案例模拟电影信息系统
  • 基于Hadoop平台的电信客服数据的处理与分析③项目开发:搭建基于Hadoop的全分布式集群---任务10:Hive安装部署
  • 第一百四十二节 Java数据类型教程 - Java字符数据类型
  • AI 绘画的常用技巧和操作方法
  • Kafka入门到精通(四)-SpringBoot+Kafka
  • 起飞,纯本地实时语音转文字!
  • SQL面试题练习 —— 找出所有连续未登录5天及以上的用户并提取出这些用户最近一次登录的日期
  • 微深节能 煤码头自动化翻堆及取料集控系统 格雷母线
  • CSS 背景添加白色小圆点样式
  • 【HTML入门】第一课 - 网页标签框架
  • 【DevOps】Elasticsearch集群JVM参数调整及滚动重启指南
  • 软设之多态
  • SD NAND时序解析
  • CSS-实例-div 水平居中 垂直靠上
  • 数据分析入门指南:从基础概念到实际应用(一)
  • ArcGIS Pro三维空间分析、专题制图、遥感制图全流程系统教学
  • Redis 7.x 系列【17】四种持久化策略
  • 开发经验:go切片的继承
  • PyQt5事件机制解析:从原理到实战一网打尽!
  • GraphQL与RESTful API的区别和优势
  • 关于 Qt4Qt5迁移至Qt6出现QDesktopWidget和QApplication::desktop()删除后兼容Qt6 的解决方法
  • 【HarmonyOS NEXT】鸿蒙Socket 连接