首页 > 其他分享 >机器学习3_支持向量机_线性不可分——MOOC

机器学习3_支持向量机_线性不可分——MOOC

时间:2024-11-06 16:44:04浏览次数:3  
标签:MOOC 映射 算法 超平面 线性 训练样本 向量

线性不可分的情况

如果训练样本是线性不可分的,那么上一节问题的是无解的,即不存在 \omega 和 b 满足上面所有N个限制条件。

对于线性不可分的情况,需要适当放松限制条件,使得问题有解。

放松限制条件的基本思路:

\Rightarrow 对每个训练样本及标签 \left ( X_i,Y_i \right )

\Rightarrow 设置松弛变量(slack variable)\delta _i

对于线性不可分情况,需适当放松限制条件

限制条件改写:y_i\left ( \omega ^Tx_i+b \right )\geq 1-\delta _i,(i=1\sim N)

改造后的支持向量机优化版本

最小化:\frac{1}{2}\left \| \omega \right \|^2+C\Sigma _{i=1}^N\delta _i  或  \frac{1}{2}\left \| \omega \right \|^2+C\Sigma _{i=1}^N\delta _i^2

限制条件:

(1)\delta _i\geq 0,\left ( i=1\sim N \right )

(2)y_i\left ( \omega ^TX_i+b \right )\geq 1-\delta _i,\left ( i=1\sim N \right )

  • 以前的目标函数只需要最小化  \frac{1}{2}\left \| \omega \right \|^2 现在的目标函数增加了一项  所有 \delta _i 的和。
  • 比例因子 C\Rightarrow  平衡两项

比例因子 C 是人为设定的。

人为事先设定的参数叫做算法的超参数(Hyper Parameter)

实际中:不断变化 C 的值 \Rightarrow 同时测试算法的识别率 \Rightarrow 选取超参数 C

一个算法中,选取的超参数 C 越多,意味着算法需要手动调整优化的地方也就越多,这样算法的自动性也会降低。

支持向量机是超参数很少的算法模型。

超参数很多的算法模型,如人工神经网络、卷积神经网络等。

在线性不可分情况下应用支持向量机

取目标函数:\frac{1}{2}\left \| \omega \right \|^2+C\Sigma _{i=1}^N\delta _i,C=10000

C=10000 是为了超平面和线性可分情况保持基本一致

以下是训练数据以及解出的分类面的展示

可以看到这个分类面分开大多数的圆圈和叉,只在一个训练样本上存在分类的错误。

有了线性不可分情况下的支持向量机算法

如图,这个解分错了将近一半的样本,这个解远远不能让人满意。

问题在于我们的算法模型是线性的。也就是,我们假设分开两类的函数是直线或者超平面,我们是在一组直线和超平面中选择最合适分开这两类数据的直线或者超平面。但线性模型的表现力是不够的。

在下图这个例子中,可以看到能够分开这两类的是某种曲面,例如这个椭圆,而不是直线。

因此,我们只有想办法扩大可选函数的范围,使它超越线性,才有可能应对各种复杂的线性不可分的情况。


低维到高维的映射

支持向量机在扩大可选函数范围方面独树一帜。

其他算法,如人工神经网络、决策树等,采用的是直接产生更多可选函数的方式。

例如上图,在人工网络中,通过多层非线性函数的组合能够产生类似于椭圆这样的曲线,从而分开这幅图中的圆圈和叉。

而支持向量机却不是直接产生这样的函数,而是通过将特征空间由低维映射到高维,然后在高维的特征空间当中用线性超平面对数据进行分类。

X_1X_2 是图中的❌,X_3X_4 是图中的⭕️

这个例子是线性不可分的

如果我们构造一个二维到五维到映射 \varphi \left ( x \right ) 

\varphi \left ( x \right ): x=\begin{bmatrix} a\\ b \end{bmatrix}\rightarrow \varphi \left ( x \right )=\begin{bmatrix} a^2\\ b^2\\ a\\ b\\ ab \end{bmatrix}

按照这个映射,可以解出X_1X_2 、X_3X_4

\varphi \left ( X_1 \right )=\begin{bmatrix} 0\\ 0\\ 0\\ 0\\ 0 \end{bmatrix}     \varphi \left ( X_2 \right )=\begin{bmatrix} 1\\ 1\\ 1\\ 1\\ 1 \end{bmatrix}     \varphi \left ( X_3 \right )=\begin{bmatrix} 1\\ 0\\ 1\\ 0\\ 0 \end{bmatrix}     \varphi \left ( X_4 \right )=\begin{bmatrix} 0\\ 1\\ 0\\ 1\\ 0\end{bmatrix}

当映射变成五维时\varphi \left ( X_1 \right )\varphi \left ( X_2 \right )\varphi \left ( X_3 \right )\varphi \left ( X_4 \right )  线性可分

设:

\omega =\begin{bmatrix} -1\\ -1\\ -1\\ -1\\ 6 \end{bmatrix}

b=1

可以算出

\omega ^T\varphi \left (X_1\right )+b = 1\geqslant 0                  \omega ^T\varphi \left (X_2\right )+b = 3\geqslant 0

\omega ^T\varphi \left (X_3\right )+b =- 1< 0               \omega ^T\varphi \left (X_4\right )+b = -1< 0

由于X_1X_2 是同一类,X_3X_4 是同一类

人为二维到五维到映射 \varphi \left ( X \right )线性不可分的数据集 \Rightarrow 线性可分的数据集

假设:

在一个M维空间上随机取N个训练样本,随机的对每个训练样本赋予标签 +1 或 -1

假设:

这些训练样本线性可分的概率为 P\left ( M \right )

当 M 趋于无穷大时,P\left ( M \right )=1

即,当我们增加特征空间的维度 M 的时候,超平面待估计的参数 \left ( \omega ,b \right ) 的维度也会增加。也就是整个算法模型的自由度会增加。

这个定理告诉我们,将训练样本由低维映射到高维 \Rightarrow 增大线性可分的概率。

标签:MOOC,映射,算法,超平面,线性,训练样本,向量
From: https://blog.csdn.net/Jay_NanX/article/details/143528563

相关文章

  • 机器学习2_支持向量机_线性可分——MOOC
    定义线性可分(LinearSeparable)二维 三维特征空间维度  四维时,二维的情况下分割圆圈和叉的直线。线性不可分(NonlinearSeparable)不存在一条直线二维 三维特征空间维度  四维时,三维的情况下,分割圆圈和叉的平面将会变成超平面(Hyperplane)。由于人眼对空间的感......
  • 机器学习1_机器学习定义——MOOC
    一、机器学习定义定义一1959年ArthurSamuel提出机器学习的定义:MachineLearningisFieldsofstudythatgivescomputerstheabilitytolearnwithoutbeingexplicitlyprogrammed.译文:机器学习是这样的领域,它赋予计算机学习的能力,(这种学习能力)不是通过显著式的编......
  • 零基础学习Spring AI Java AI使用向量数据库postgresql 检索增强生成 RAG
    零基础学习SpringAIJavaAI使用向量数据库postgresql检索增强生成RAG向量数据库是一种特殊类型的数据库,在人工智能应用中发挥着至关重要的作用。在向量数据库中,查询与传统的关系数据库不同。它们不是进行精确匹配,而是执行相似性搜索。当给定一个向量作为查询时,向量数......
  • 如何定义ggplot2 的scale_fill_manual() 中参数 values 的命名向量?
    需求背景对R语言中,ggplot2的scale_fill_manual()函数的values参数理解不到位,它这里需要的是一个命名向量,无法在c()函数内部直接创建一个向量。举例说明,以不同分类数据的条形图来作为图例。比如我有14个不同物种,绘制其不同颜色的条形图,注意颜色不能随便定义,需要指定每个......
  • 数据结构线性表
    语雀链接:https://www.yuque.com/g/wushi-ls7km/ga9rkw/vrhdf9bfkmshpzus/collaborator/join?token=C3AlDSf6fePw1XfO&source=doc_collaborator#《数据结构线性表》......
  • faiss用于大数据量的向量检索
    背景:10亿(Billion级别)的数据应该是一个很大的数据了,尤其是维度在768+级别(还有1024,1536等),这个数据量我做了一个实验,shape为(1kw,768)的array(numpy)占内存为30G(float32格式),如果能降低为float16更好不过,但似乎faiss没有这种方法或者精度有所损失。那么对于5亿级别的数据(vectors),占内存......
  • 简单的模型——线性回归
    从机器学习的角度出发,所谓线性回归,指的是自变量(特征)加权求和汇总求得因变量(标签)的过程,比如,我们以前上学时,见到的函数y=w1x1+w2x2+b就是一个非常典型的线性回归模型,在进一步学习这个模型之前,我们需要讲解一些建模过程中应用到的概念。#导入相关包importnumpyasnpimportp......
  • 深入理解多重共线性:基本原理、影响、检验与修正策略
    在数据科学和机器学习领域,构建可靠且稳健的模型是进行准确预测和获得有价值见解的关键。然而当模型中的变量开始呈现出高度相关性时,就会出现一个常见但容易被忽视的问题——多重共线性。多重共线性是指两个或多个预测变量之间存在强相关性,导致模型难以区分它们对目标变量的贡......
  • 【初阶数据与算法】线性表之顺序表的定义与实现
    文章目录一、线性表的概念二、顺序表1.概念与结构2.顺序表的分类静态顺序表动态顺序表三、顺序表的实现1.顺序表的结构2.顺序表的初始化和销毁初始化函数销毁函数3.顺序表的扩容4.顺序表的尾插和头插尾插函数头插函数5.顺序表的尾删和头删尾删函数头删函数6.顺序表......
  • Matlab 基于贝叶斯算法优化Transformer结合支持向量机回归(Bayes-Transformer-SVM)
    基于Bayes-Transformer-SVM多变量回归预测(多输入单输出)贝叶斯算法(BO/Bayes)优化参数为自注意力机制头数、正则化系数、学习率!你先用你就是创新!!!1.程序已经调试好,无需更改代码替换数据集即可运行!!!数据格式为excel!2.评价指标包含:RMSE、R2、MSE、MAE、MBE、MAPE、RPD。3.Tran......