SVM算法

支持向量机(SVM)是一种常用于分类和回归的机器学习算法,特别适合处理二分类问题。它的核心思想是通过找到一个超平面来将不同类别的样本分开,并且这个超平面与各个类别之间的间隔最大,也就是最大化分类的边界,从而提高模型的泛化能力。

简单地说,SVM会在数据集中找到一条线(在高维空间里是超平面),使得这条线能够最清楚地把两类数据分开,并尽可能远离两类数据的边界点,称为“支持向量”。

SVM的关键特点:

  1. 最大化分类边界:它通过找到使分类间隔最大的超平面来提高分类的准确性。
  2. 支持非线性分类:通过使用核函数(比如常见的RBF核)将数据映射到高维空间,能够处理非线性分类问题。
  3. 处理高维数据:SVM适合处理维度较高的数据,并且在小样本的情况下表现良好。

一个简单例子:

如果你有两个类别的数据点,SVM会找到一条线(或者高维空间的超平面)把这两类数据分隔开,并且确保这条线离每类数据点最远。这样,当遇到新的数据时,它可以根据位置来决定它属于哪一类。

SVM的应用非常广泛,如图像分类、文本分类、甚至生物信息学等。

SVM的基本思想是通过数学手段找到能够最大化分类间隔的超平面

SVM 算法的基本步骤:

  1. 数据表示
    假设我们有两个类别的数据点。每个数据点可以表示为向量 (x_i),并且有对应的标签 (y_i),标签要么是 1(正类),要么是 -1(负类)。目标是找到一个超平面来将这些数据分成两类。

  2. 超平面方程
    超平面可以写成:
    [
    w \cdot x + b = 0
    ]
    其中:

    • (w) 是超平面的法向量,决定超平面的方向。
    • (b) 是偏置,决定超平面与原点的距离。
    • (x) 是输入数据点。

    这个超平面将数据点分成两类:

    • ( w \cdot x + b > 0 ) 时,属于正类(1类)。
    • ( w \cdot x + b < 0 ) 时,属于负类(-1类)。
  3. 最大化间隔
    我们希望找到一个超平面,使得正类和负类之间的间隔最大。间隔就是从支持向量到超平面的距离。我们要最大化的间隔可以写作:
    [
    \text{间隔} = \frac{2}{|w|}
    ]
    这里 (|w|) 是 (w) 的范数(即长度),所以为了最大化间隔,我们实际上要最小化 (|w|)。

  4. 约束条件
    为了保证数据点被正确分类,我们需要满足以下条件:
    [
    y_i (w \cdot x_i + b) \geq 1
    ]
    这个不等式意思是:

    • 对于正类点,要求 (w \cdot x_i + b \geq 1)。
    • 对于负类点,要求 (w \cdot x_i + b \leq -1)。
  5. 优化问题
    我们的目标就是在满足这些约束条件的情况下,最小化 (\frac{1}{2} |w|^2)。于是,SVM就变成了一个凸优化问题
    [
    \min \frac{1}{2} |w|^2
    ]
    使得对于每一个数据点 (i) 来说,约束 (y_i (w \cdot x_i + b) \geq 1) 成立。

  6. 拉格朗日乘子法
    为了求解这个优化问题,我们引入拉格朗日乘子 (\alpha_i),将约束条件和目标函数合并成一个拉格朗日函数:
    [
    L(w, b, \alpha) = \frac{1}{2} |w|^2 - \sum_{i=1}^{n} \alpha_i [y_i (w \cdot x_i + b) - 1]
    ]
    然后我们通过对 (w) 和 (b) 求偏导,得到优化解。

  7. 决策函数
    最终,当我们求得 (w) 和 (b) 后,新的数据点 (x) 的分类结果可以通过以下公式计算:
    [
    f(x) = \text{sign}(w \cdot x + b)
    ]
    如果 (f(x) > 0),则 (x) 属于正类;如果 (f(x) < 0),则 (x) 属于负类。

核心思想总结:

  • SVM 通过找到一个最大化分类间隔的超平面来区分两类数据。
  • 其优化目标是最小化法向量 (w) 的范数,同时确保数据点在分类时满足某种条件。
  • 手算过程涉及拉格朗日乘子法来求解约束优化问题。

手算 SVM 时,关键在于通过计算优化问题中的 (w)、(b) 来确定超平面位置,从而实现数据分类。


在这里插入图片描述

92讲视频课+16大项目实战+课件源码  为什么学习数据分析?       人工智能、大数据时代有什么技能是可以运用在各种行业的?数据分析就是。      从海量数据中获得别人看不见的信息,创业者可以通过数据分析来优化产品,营销人员可以通过数据分析改进营销策略,产品经理可以通过数据分析洞察用户习惯,金融从业者可以通过数据分析规避投资风险,程序员可以通过数据分析进一步挖掘出数据价值,它和编程一样,本质上也是一个工具,通过数据来对现实事物进行分析和识别的能力。不管你从事什么行业,掌握了数据分析能力,往往在其岗位上更有竞争力。   本课程共包含五大模块: 一、先导篇: 通过分析数据分析师的一天,让学员了解全面了解成为一个数据分析师的所有必修功法,对数据分析师不在迷惑。  二、基础篇: 围绕Python基础语法介绍、数据预处理、数据可视化以及数据分析与挖掘......这些核心技能模块展开,帮助你快速而全面的掌握和了解成为一个数据分析师的所有必修功法。 三、数据采集篇: 通过网络爬虫实战解决数据分析的必经之路:数据从何来的问题,讲解常见的爬虫套路并利用三大实战帮助学员扎实数据采集能力,避免没有数据可分析的尴尬。  四、分析工具篇: 讲解数据分析避不开的科学计算库Numpy、数据分析工具Pandas及常见可视化工具Matplotlib。  五、算法篇: 算法是数据分析的精华,课程精选10大算法,包括分类、聚类、预测3大类型,每个算法都从原理和案例两个角度学习,让你不仅能用起来,了解原理,还能知道为什么这么做。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值