AI - 支持向量机算法

简介: **支持向量机(SVM)**是一种用于二分类的强大学习算法,寻找最佳超平面以最大化类别间间隔。对于线性可分数据,SVM通过硬间隔最大化找到线性分类器;非线性数据则通过核技巧映射到高维空间,成为非线性分类器。SVM利用软间隔处理异常或线性不可分情况,并通过惩罚参数C平衡间隔和误分类。损失函数常采用合页损失,鸢尾花数据集常用于SVM的示例实验。

🧨概念


支持向量机(Support Vector Machine, SVM)是一种强大的机器学习算法,主要用于解决二分类问题。


SVM的核心思想是找到一个超平面,这个超平面能够最好地将数据分为两类,即在保证分类准确的情况下,使得两个类别的数据到超平面的最小距离(即间隔)最大。


  • 对于线性可分的数据,SVM通过硬间隔最大化学习一个线性分类器。这意味着所有训练样本都能够被超平面正确分开,并且最近的样本点与超平面之间的距离(即间隔)达到最大。
  • 当数据不是完全线性可分时,SVM通过软间隔最大化来学习一个线性分类器。这意味着允许一些样本不满足硬间隔的要求,但仍然尽可能地使间隔最大化。
  • 对于非线性可分的数据,SVM使用核技巧将数据映射到更高维度的空间中,使其变得线性可分,然后再进行间隔最大化。这种方法使得SVM成为一个实质上的非线性分类器。
  • 无论是线性还是非线性的情况,SVM的求解过程最终都转化为一个凸二次规划问题。这是因为SVM的目标函数是一个凸函数,可以通过求解凸优化问题来找到全局最优解。
  • 由于其坚实的理论基础和良好的泛化能力,SVM在许多领域都得到了广泛的应用,包括文本分类、图像识别、生物信息学等。


🧨引入


对于桌面上颜色不同的两种小球,用一根棍分开它们,我们可以直接将其放在两种小球中间隔开他们,尽可能使得木棍距离两个群体都远,这样可以方便更多数据进来时有更好的分辨率。


我们放了更多的球,棍仍然是一个好的分界线,但如果我们打乱小球分布,该如何隔开他们?





现在,我们没有棍可以很好帮他分开两种球了 ,我们可以将小球扔到空中进入一个多维空间



但在上边看来就是一个曲线隔开的。我们的数据就是小球data,棍子就是分类器classifier



🧨支持向量机分类


  • 线性SVM:对于线性可分的数据,SVM能够找到一个超平面,使得所有训练样本都能够被正确分开,并且最近的样本点与超平面之间的距离(即间隔)达到最大。这种情况下的SVM称为线性SVM。
  • 非线性SVM:当数据在原始空间中不是线性可分时,SVM使用核技巧将数据映射到更高维度的空间中,使其变得线性可分。在这个高维特征空间中,SVM学习一个线性分类器来进行分类。这种方法使得SVM成为一个实质上的非线性分类器。


根据在检验样本上的运行效果,分类器必须从这些分类超平面中选择一个来表示它的决策边界。满足这个条件的很多,但是使得泛化误差最小的条件就是边际margin最大的情况。


🧨 软间隔和硬间隔


  • 硬间隔指的是让所有的样本都不在最大间隔之间,并位于正确的一边,这就是硬间隔。如果出现异常值、或者样本不能线性可分,此时硬间隔无法实现。        
  • 软间隔指的是我们容忍一部分样本在最大间隔之内,甚至在错误的一边。相对来说,软间隔可以应用在一些线性不可分的场景。  


🧨惩罚参数 C  


SVM中的惩罚参数C是一个非常重要的超参数,它决定了算法对错误分类的容忍度。


在SVM中,C参数用于控制间隔大小与分类误差之间的权衡。较大的C值意味着算法更加重视分类误差,即算法会尽量减小训练集上的分类错误。相反,较小的C值意味着算法更加重视最大化间隔,即使这可能导致在训练集上有更多的分类错误。


C值的选择对模型的泛化能力有显著影响。如果C设置得过大,模型可能会过度拟合训练数据,导致在未知数据上的表现不佳。这是因为模型过于关注训练集中的每个样本,包括那些可能仅仅是噪声的样本。相反,如果C设置得过小,模型可能会欠拟合,即对训练数据的分类错误过多,这也会影响模型在新数据上的性能。


在实际的应用中,选择合适的C值是非常重要的。通常,这需要通过交叉验证等技术来进行评估和选择。  


🧨SVM损失函数


SVM的损失函数通常指的是合页损失函数(Hinge Loss),它是一种变种损失函数,用于最大间隔分类。合页损失函数的表达式为:



yi 是样本的标签,omega 和 b 分别是模型的权重和偏置项,xi 是第 i 个样本的特征向量。这个损失函数的第一部分是经验风险,它度量了模型对训练数据的拟合程度。当预测值与实际标签之间的差距大于1时,损失为0;否则,损失为1−yi(ωTxi+b)。


🧨鸢尾花种类预测


Iris 数据集是常用的分类实验数据集,也称鸢尾花卉数据集,是一类多重变量分析的数据集。


from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
 
 
if __name__ == '__main__':
 
    # 加载数据集
    x, y = load_iris(return_X_y=True)
 
    # 数据集分割
    x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, stratify=y)
 
    # 特征值标准化
    transformer = StandardScaler()
    x_train = transformer.fit_transform(x_train)
    x_test = transformer.transform(x_test)
 
    # 模型训练
    estimator = SVC()
    estimator.fit(x_train, y_train)
 
    # 模型预测
    print(estimator.score(x_test, y_test))

 

分割数据集时stratify=y的作用是在划分训练集和测试集时,保持类别的比例。这样可以确保在训练集和测试集中各类别的比例与原始数据集中的比例相同,有助于避免因数据分布不均导致的模型性能偏差。

相关文章
|
2月前
|
传感器 人工智能 监控
智慧工地 AI 算法方案
智慧工地AI算法方案通过集成多种AI算法,实现对工地现场的全方位安全监控、精准质量检测和智能进度管理。该方案涵盖平台层、展现层与应用层、基础层,利用AI技术提升工地管理的效率和安全性,减少人工巡检成本,提高施工质量和进度管理的准确性。方案具备算法精准高效、系统集成度高、可扩展性强和成本效益显著等优势,适用于人员安全管理、施工质量监控和施工进度管理等多个场景。
|
2月前
|
传感器 人工智能 监控
智慧电厂AI算法方案
智慧电厂AI算法方案通过深度学习和机器学习技术,实现设备故障预测、发电运行优化、安全监控和环保管理。方案涵盖平台层、展现层、应用层和基础层,具备精准诊断、智能优化、全方位监控等优势,助力电厂提升效率、降低成本、保障安全和环保合规。
智慧电厂AI算法方案
|
18天前
|
机器学习/深度学习 人工智能 算法
Enhance-A-Video:上海 AI Lab 推出视频生成质量增强算法,显著提升 AI 视频生成的真实度和细节表现
Enhance-A-Video 是由上海人工智能实验室、新加坡国立大学和德克萨斯大学奥斯汀分校联合推出的视频生成质量增强算法,能够显著提升视频的对比度、清晰度和细节真实性。
61 8
Enhance-A-Video:上海 AI Lab 推出视频生成质量增强算法,显著提升 AI 视频生成的真实度和细节表现
|
1天前
|
机器学习/深度学习 存储 人工智能
淘天算法工程师玩转《黑神话》,多模态大模型如何成为天命AI
淘天集团未来生活实验室的算法工程师们以ARPG游戏《黑神话:悟空》为平台,探索多模态大模型(VLM)在仅需纯视觉输入和复杂动作输出场景中的能力边界。他们提出了一种名为VARP的新框架,该框架由动作规划系统和人类引导的轨迹系统组成,成功在90%的简单和中等难度战斗场景中取得胜利。研究展示了VLMs在传统上由强化学习主导的任务中的潜力,并提供了宝贵的人类操作数据集,为未来研究奠定了基础。
|
1月前
|
机器学习/深度学习 缓存 人工智能
【AI系统】QNNPack 算法
QNNPACK是Marat Dukhan开发的量化神经网络计算加速库,专为移动端优化,性能卓越。本文介绍QNNPACK的实现,包括间接卷积算法、内存重排和间接缓冲区等关键技术,有效解决了传统Im2Col+GEMM方法存在的空间消耗大、缓存效率低等问题,显著提升了量化神经网络的计算效率。
42 6
【AI系统】QNNPack 算法
|
1月前
|
存储 人工智能 缓存
【AI系统】Im2Col 算法
Caffe 作为早期的 AI 框架,采用 Im2Col 方法优化卷积计算。Im2Col 将卷积操作转换为矩阵乘法,通过将输入数据重排为连续内存中的矩阵,减少内存访问次数,提高计算效率。该方法首先将输入图像转换为矩阵,然后利用 GEMM 库加速计算,最后将结果转换回原格式。这种方式显著提升了卷积计算的速度,尤其适用于通道数较多的卷积层。
56 5
【AI系统】Im2Col 算法
|
1月前
|
存储 机器学习/深度学习 人工智能
【AI系统】Winograd 算法
本文详细介绍Winograd优化算法,该算法通过增加加法操作来减少乘法操作,从而加速卷积计算。文章首先回顾Im2Col技术和空间组合优化,然后深入讲解Winograd算法原理及其在一维和二维卷积中的应用,最后讨论算法的局限性和实现步骤。Winograd算法在特定卷积参数下表现优异,但其应用范围受限。
42 2
【AI系统】Winograd 算法
|
29天前
|
人工智能 算法
AI+脱口秀,笑点能靠算法创造吗
脱口秀是一种通过幽默诙谐的语言、夸张的表情与动作引发观众笑声的表演艺术。每位演员独具风格,内容涵盖个人情感、家庭琐事及社会热点。尽管我尝试用AI生成脱口秀段子,但AI缺乏真实的情感共鸣和即兴创作能力,生成的内容显得不够自然生动,难以触及人心深处的笑点。例如,AI生成的段子虽然流畅,却少了那份不期而遇的惊喜和激情,无法真正打动观众。 简介:脱口秀是通过幽默语言和夸张表演引发笑声的艺术形式,AI生成的段子虽流畅但缺乏情感共鸣和即兴创作力,难以达到真人表演的效果。
|
2月前
|
机器学习/深度学习 传感器 人工智能
智慧无人机AI算法方案
智慧无人机AI算法方案通过集成先进的AI技术和多传感器融合,实现了无人机的自主飞行、智能避障、高效数据处理及多机协同作业,显著提升了无人机在复杂环境下的作业能力和安全性。该方案广泛应用于航拍测绘、巡检监测、应急救援和物流配送等领域,能够有效降低人工成本,提高任务执行效率和数据处理速度。
智慧无人机AI算法方案
|
1月前
|
存储 人工智能 缓存
【AI系统】布局转换原理与算法
数据布局转换技术通过优化内存中数据的排布,提升程序执行效率,特别是对于缓存性能的影响显著。本文介绍了数据在内存中的排布方式,包括内存对齐、大小端存储等概念,并详细探讨了张量数据在内存中的排布,如行优先与列优先排布,以及在深度学习中常见的NCHW与NHWC两种数据布局方式。这些布局方式的选择直接影响到程序的性能,尤其是在GPU和CPU上的表现。此外,还讨论了连续与非连续张量的概念及其对性能的影响。
64 3

热门文章

最新文章