机器学习基础算法 (三)支持向量机(SVM)
创作时间:
作者:
@小白创作中心
机器学习基础算法 (三)支持向量机(SVM)
引用
CSDN
1.
https://blog.csdn.net/liu1983robin/article/details/144918775
支持向量机(SVM)是一种在机器学习领域广泛应用的经典算法,主要用于分类和回归任务。其核心思想是在高维空间中寻找一个最佳的分割超平面,以实现对不同类别数据的有效区分。本文将从SVM的基本原理出发,深入探讨其在Python中的具体实现,并通过实际案例进行演示。
一、SVM的基本原理
支持向量机的目标是通过选择一个最优的超平面来划分不同类别的样本点。这个超平面能够使得两类样本之间的间隔(即“边界”)最大化,从而提高模型的泛化能力。
在SVM中,我们不仅仅是寻找一个超平面来划分样本,而是希望找到一个最大化类别间隔的平面。这个间隔的最大化可以用以下公式来表达:
SVM通过解决这个二次优化问题,找到最优的超平面并将数据点分类。
1. 线性SVM
当数据是线性可分时,SVM能够通过一个简单的线性超平面来分割数据。假设数据集为 ({(x_i, y_i)}),其中 (x_i) 为输入数据,(y_i) 为标签,SVM的目标是找到一个最佳的超平面 (w \cdot x + b = 0),使得数据点满足间隔最大化的条件。
2. 非线性SVM
当数据不可线性分割时,SVM可以通过引入核函数将数据从原始空间映射到高维空间,进而在高维空间中找到一个线性超平面来进行分类。这种映射过程通过使用核技巧(Kernel Trick)来避免显式计算高维空间的特征。
常见的核函数包括:
二、SVM的Python实现
SVM可以通过Python中的scikit-learn库实现,该库提供了简单易用的API来进行SVM分类和回归任务。
1. 导入必要的库
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.metrics import classification_report, confusion_matrix
2. 加载数据集
我们将使用sklearn中的鸢尾花(Iris)数据集进行分类实验。
# 加载鸢尾花数据集
iris = datasets.load_iris()
X = iris.data # 特征
y = iris.target # 标签
3. 数据集划分
将数据集划分为训练集和测试集。
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
热门推荐
【握笔姿势】必看!握笔姿势常见问题如何解决
日本药妆店生存指南:成分表重点日语词汇学习解析
日本药妆店购物攻略:学习药品日文名称让你购物快狠准
旧书怎么处理?可持续和创造性的选择
联合国贸发会:关键海运航线中断威胁全球贸易,小岛屿国家受影响最大
分时操作系统:允许多用户共享计算机资源的多任务处理机制
游泳的时候,你保护好耳朵了吗?
耳鸣,切勿掉以轻心。
照度计FC和LUX的区别与换算
继承权公证书办理指南:流程、费用与注意事项全解析
探秘边景昭《百鸟三友图》:粗犷画风里藏着的直抒胸臆
你真的理解可重复读吗?从幻读到 MVCC,从实操搞懂
美军正研发武器“黑科技”,这次竟选择了“陶瓷+3D打印”!
她的存在,标志着中国女性主义的觉醒
清华团队发布《AI驱动政务热线发展研究报告》!全面解析热线数智创新应用
Excel函数难学?先看看这些套路你会多少
十问十答 | 什么是LPR?下调对你我普通老百姓有何影响?
Mac终端中使用Touch ID进行身份验证的方法,值得尝试
如何提高公共场所安全防范?
地漏管道被水泥堵住了怎么办
风靡20年的“超级水果”,给农产品品牌营销带来哪些启示?
千古奇文《君子行》全文仅60字,却蕴含深刻人生哲理和处世态度!
眼睛红血丝的自我护理全攻略
水芹菜怎么做好吃?三种简单又美味的烹饪方法
颠覆认知!多吃主食,真的能减肥
骑行入门:给自行车新手的12条实用建议
Excel中实现图片镜像的四种方法
实验室电子火焰本生灯的用途、和酒精灯的差异及种类区分介绍
羽毛球拍断线的原因及预防方法
技术管理规划团队架构表的六大关键要素