精华内容
下载资源
问答
  • 作者|Anuj Shrivastav 编译|VK 来源|Medium 介绍监督学习...我们将在此博客中讨论一种这样模型支持向量机,简称为SVM。我目的为你提供简单明了SVM内部工作。假设我们正在处理二分类任务。 可能有无限...

    作者|Anuj Shrivastav 编译|VK 来源|Medium

    da21b22fff2c18f5ff24533ef9cb0f53.png

    介绍

    监督学习描述了一类问题,涉及使用模型来学习输入示例和目标变量之间的映射。如果存在分类问题,则目标变量可以是类标签,如果存在回归问题,则目标变量是连续值。一些模型可用于回归和分类。我们将在此博客中讨论的一种这样的模型是支持向量机,简称为SVM。我的目的是为你提供简单明了的SVM内部工作。

    假设我们正在处理二分类任务。

    1b1afc89042572be5fb51589bb49d10a.png

    可能有无限多的超平面可以将这两个类分开。你可以选择其中任何一个。但是这个超平面能很好地预测新查询点的类吗?你不认为离一个类很近的那个平面有利于另一个类吗?直观地说,分离两个类的最佳方法是选择一个超平面,该超平面与两个类中最近的点等距。

    这就是SVM的作用!

    e8d62cdddeeb5efd880b25807d94c3fc.png

    支持向量机的核心思想是:

    选择尽可能广泛地将+ve点与-ve点分开的超平面π。(ve代表vector,向量,也就是样本的向量)

    设π是分离这两类的超平面,π+和π_是两个平行于π的超平面

    π₊是当我们平行于π移动并与π最近的+ve点接触时得到的平面

    π₋是当我们平行于π移动并接触到π的最近-ve点时得到的平面

    f1da6a6ab019c655ab27f1ba902f0a32.png

    d=margin = dist(π₊,π₋)

    SVM试图找到一个π来最大化间隔。

    随着间隔的增加,泛化精度也随之提高。

    支持向量

    位于π₊或π₋上的点称为支持向量。

    de4fceaa0b5bfed0bbcb08c39a676bb9.png

    SVM数学公式

    π: 边距最大化的超平面

    π: wᵀx+b=0

    π₊:wᵀx+b=+1

    π₊上的任何点或在正方向远离π₊的任何点都标记为正

    π₋:wᵀx+b=-1

    π₋上的任何点或在负方向远离π₊的任何点都标记为负

    625698a305c68bb85edff0150af79e69.png

    优化问题为

    9e7d0c2105cb387d0c27f2f0043e99f6.png

    现在,这看起来不错,但是,它只在我们的数据是线性可分时起作用。否则,我们将无法解决上述优化问题,也无法得到最优的w和b。

    假设一个数据不是线性可分的场景:

    fde3e36d31761257b47ab38e47338998.png

    因为这四个点,我们的优化问题永远不会得到解决,因为这些点yᵢ(wᵀx+b)不大于1。

    这是因为我们的优化问题过于严格,它只解决线性可分数据。硬边距就是这种方法的名称。

    那么,我们可以修改它吗?我们能不能稍微宽大一点,这样它就可以处理几乎线性可分的数据?

    7830eb6fe56d93d8f05fca0c6e66a2b0.png

    我们要做的是,我们做一个松弛变量ζᵢ(zeta),对应于每个数据点,这样对于位于+ve区域的+ve点和位于-ve区域的-ve点,

    ζᵢ=0。

    这就给我们留下了错误的分类点和间隔内的点。

    ζᵢ的含义,以图为例,当ζᵢ=2.5

    这意味着pt.4在相反的方向上与它的正确超平面(在本例中为π₊)相距2.5个单位。

    类似地,pt.1与最优超平面(本例中为π₋)的方向相反,距离为2.5个单位。

    当ζᵢ增大时,该点在错误方向上离最优超平面更远。

    600c8e355743fe3029e0f4cad874d912.png

    改进优化问题

    8398994dca3209b09280dabfd1629da1.png

    让我们把它分解

    首先,约束条件:

    我们知道,

    ba039641898bde8733d0d419d8bde781.png

    现在:

    dc5b8a2c51a6ac4ee1e42166b846adac.png

    c55f50d57a371aede110ea566d8e9cfd.png

    c是超参数。

    我们可以直观地认为优化问题为:

    d8b32a89501858140948e2610303cc42.png

    如果c值较高,则损失项的权重更大,从而导致数据的过拟合。

    如果c值较低,则正则化项的权重较大,导致数据欠拟合。

    SVM对偶形式

    82225d9b5d0938068552395b5b6e262e.png

    等等!我们怎么得到这个对偶形式的?

    这都和最优化有关如果我们深入研究这个问题,我们就会偏离我们的目标。让我们在另一个博客中讨论这个对偶形式。

    为什么我们需要这个对偶形式?

    对偶形式有时更容易解决,如果对偶间隙非常小,我们会得到相似的结果。特别是支持向量机:对偶形式非常重要,因为它通过核函数开启了一种解释支持向量机的新方法(我将在本博客的后面部分告诉你)。

    注意:在对偶形式中,所有xᵢ都以点积的形式出现,不像原始形式中所有xᵢ都作为独立点出现。

    αᵢ可以被认为是一个拉格朗日乘数

    观察对偶形式:

    对于每个xᵢ,有相应的αᵢ

    所有xᵢ都是点积的形式

    我们对一个新点的分类方式改变如下:

    81015bdbb94cf381fb79e70f9c275ae2.png

    支持向量αᵢ>0,非支持向量αᵢ=0。

    这意味着只有支持向量才是重要的,这就是将该模型命名为支持向量机的原因。

    现在,以对偶形式

    5cdabbee67654245c2e2a7b64f2afce1.png

    5f61af311e002ee2cd858566c17d8859.png

    因此,如果给出一个相似矩阵,我们可以使用对偶形式,而不是原始形式。这就是支持向量机的优点。通常,这种相似性(xᵢ,xⱼ)被K(xᵢ,xⱼ)代替,其中K称为核函数。

    核技巧及其背后的直觉

    用核函数K(xᵢ,xⱼ)替换相似性(xᵢ,xⱼ)称为核化,或应用核技巧。

    如果你看它,它只是计算xᵢ和xⱼ的点积。那么,有什么了不起的?

    让我们以下面的数据集为例。

    bdf69bd4686011c19ce11b02c22cd8d6.png

    很明显,在线性模型的帮助下,这两个类是不能分离的。

    现在,将数据集转换为具有 的特征的多维数据集。

    6b6740697421154345e78fa65cd87c48.png

    你看到了吗?应用适当的特征变换和增加维数使数据线性可分。

    这就是核支持向量机的作用。它将原始特征映射到一个高维空间中,在该空间中找到间隔最大的超平面,并将该超平面映射到原始维空间中,得到一个非线性决策曲面,而不必实际访问该高维空间。

    所以

    线性支持向量机:在xᵢ的空间中寻找间隔最大化超平面

    核支持向量机:在xᵢ的变换空间中寻找间隔最大化超平面

    因此,核支持向量机也能求解非线性可分数据集。

    让我们看看支持向量机中使用的一些核函数-

    多项式核

    定义如下:

    c37b4f00128a8e929f9a06b0e5f95c07.png

    其中

    d=数据维度

    c=常数

    对于二次核,设c=1,即

    f9ee70ae7b20fae06a9389d126e5112b.png

    当维度为2

    7e2f5a1c8a202f4e74bba292465c5df0.png

    这可以被认为是2个向量x₁和x₂的乘积,其中:

    eb0fceca7107b9fbcdfd151def804033.png

    现在维度=d'=6

    因此,核化与特征转换是一样的,但通常是d'>d,核化是在内部隐式地完成的。

    径向基函数(RBF核)

    它是最受欢迎的核,因为你无法确定要选择哪个核时,可以选择它

    定义如下:

    32cc247f6090a0370d0940acdc899ac1.png

    d的效果:

    当d增大时,指数部分的分子减小,换句话说,K值或相似度减小。

    σ的影响:

    d21a0518c66dde166d157a60a5e2417e.png

    如果你注意,当σ=0.3,在x=2,接近于0。在x = 4,σ= 1时和x = 11,σ= 10,它接近0。这表明当σ增加时,即使两个点是很远,相似的score可能也不会很低。

    例如假设有两个点x₁和x₂的距离为4个单元。如果我们应用σ= 0.3的RBF核,核函数K值或相似值是0。如果我们设置σ= 1,K值很接近0,但如果我们设置σ= 10,K值约为0.4左右。

    现在说明RBF核背后的直觉

    还记得我们在使用多项式核函数时得到的6维映射函数吗?现在让我们尝试找出RBF核的一个映射函数。

    为了简化数学,假设原始数据的维数为2,指数部分的分母为1。在这种情况下,

    bf82220135062f3ffa125313eda261f7.png

    如果我们试图找出RBF核的映射函数,就会得到一个无限向量。这意味着RBF核需要我们的数据映射到无限维的空间,计算相似性得分并返回它,这就是为什么如果你不知道选择哪个核,RBF核函数将是最安全的选择。

    用于回归的SVM

    到目前为止,我们已经研究了如何使用支持向量机执行分类任务。但支持向量机不仅限于此。它也可以用来执行回归任务。怎样?让我们看看!

    首先,让我们看看支持向量回归(SVR)的数学公式

    70cba1d914200a469a475224f983220a.png

    别担心!我帮助你理解。

    99b88dbcdf85cf6f815ba4eea3eda119.png

    SVR的工作方式是,它试图找到一个最适合的数据点的超平面,同时保持一个软间隔=ε(超参数),这意味着所有的点都应该在超平面两侧ε距离。

    最小化这里的边界意味着我们想要找到一个超平面,这个超平面以较低的误差来匹配数据。

    注意:平方是为了使函数变得可微并适合于优化。对于SVC也可以这样做。

    这个公式有什么问题?

    这里的问题是,我们太严格,我们期望的点位于ε超平面的距离在现实世界并不经常发生。在这种情况下,我们将无法找到所需的超平面。那么,我们该怎么做呢?

    与我们在SVC中处理这个问题的方法相同,我们将为法向点引入两个松弛变量ζ和ζ*,以允许某些点位于范围之外,但会受到惩罚。

    aafcb2a1eaa454b29324555ed031320c.png

    所以数学公式现在变成:

    1a4b8f187ffc9dc2b9a493643605233e.png

    其中C确定所需的严格程度。C值越大,对边距外的点的惩罚就越多,这可能导致数据的过度拟合。更少的C意味着对边缘以外的点的惩罚更少,这可能导致数据拟合不足。

    与SVC中一样,图显示了SVR的原始形式。结果表明,对偶形式更易于求解,并且可以利用核技巧求出非线性超平面。

    正如我已经说过的,对偶形式的公式是有点棘手的,涉及解决约束优化问题的知识。我们不会深入讨论太多细节,因为这会转移我们对支持向量机的注意力。

    SVR对偶形式

    a2d18b53c0d865498f0c18fb9756fabf.png

    这是通过使用拉格朗日乘子求解优化问题得到的。

    对于一个新的点,我们计算输出值的方法是:

    d39820e7e524482af1e398b01810a04b.png

    你有没有注意到,xᵢ是点积的形式?是的,和我们在SVC中得到的一样。我们可以用前面提到的相似度或核函数来代替这个点积。应用核技巧还可以帮助我们拟合非线性数据。

    支持向量机的各种情况

    特征工程和特征转换,这是通过找到上面讨论的正确的核来实现的

    决策面,对于线性支持向量机:决策曲面只是一个超平面,对于核支持向量机:它将是一个非线性曲面

    相似函数/距离函数,支持向量机的原始形式不能处理相似函数。然而,因为xᵢ点积的存在形式,对偶形式可以很容易地处理它。

    特征的重要性,如果特征不是共线的,那么权重向量w中特征的权重决定了特征的重要性。如果特征是共线的,可以使用前向特征选择或后向特征消除,这是确定任何模型特征重要性的标准方法。

    离群值,与其他模型如Logistic回归相比,支持向量机的影响较小。

    偏差-方差,它依赖于支持向量机对偶形式中c的值。

    如果c值较高,则误差项的权重较大,因此模型可能会对数据进行过拟合;如果c值较低,则误差项的权重较小,模型可能会对数据进行欠拟合。

    高维度,支持向量机的设计可以很好地工作,即使在高维度。如图所示,支持向量机的数学公式中已经存在一个正则化项,有助于处理高维问题。你可能会说像KNN这样的其他模型并不适用于高维空间,那么SVMs有什么特别之处呢?这是因为支持向量机只关心找到使边距最大的平面,而不关心点之间的相对距离。

    支持向量机的优点

    它有一个正则化项,有助于避免数据的过拟合

    它使用核技巧,这有助于处理甚至非线性数据(在SVR情况下)和非线性可分数据(在SVC情况下)

    当我们不了解数据时,支持向量机是非常好的。

    可以很好地处理非结构化和半结构化数据,比如文本、图像和树。

    从某种意义上说,它是健壮的,即使在训练示例包含错误的情况下也能工作

    支持向量机的局限性

    选择正确的核是一项困难的任务。

    支持向量机算法有多个超参数需要正确设置,以获得对任何给定问题的最佳分类结果。参数可能导致问题A的分类精度很好,但可能导致问题B的分类精度很差。

    当支持向量机的数据点数目较大时,训练时间较长。

    对于核支持向量机,其权向量w的解析比较困难。

    参考

    展开全文
  • 详解支持向量

    2020-06-15 12:01:44
    我们将在此博客中讨论一种这样模型支持向量机,简称为SVM。我目的为你提供简单明了SVM内部工作。 假设我们正在处理二分类任务。 可能有无限多超平面可以将这两个类分开。你可以选择其中任何一个。...

    作者|Anuj Shrivastav 编译|VK 来源|Medium

    介绍

    监督学习描述了一类问题,涉及使用模型来学习输入示例和目标变量之间的映射。如果存在分类问题,则目标变量可以是类标签,如果存在回归问题,则目标变量是连续值。一些模型可用于回归和分类。我们将在此博客中讨论的一种这样的模型是支持向量机,简称为SVM。我的目的是为你提供简单明了的SVM内部工作。

    假设我们正在处理二分类任务。

    可能有无限多的超平面可以将这两个类分开。你可以选择其中任何一个。但是这个超平面能很好地预测新查询点的类吗?你不认为离一个类很近的那个平面有利于另一个类吗?直观地说,分离两个类的最佳方法是选择一个超平面,该超平面与两个类中最近的点等距。

    这就是SVM的作用!

    支持向量机的核心思想是:

    选择尽可能广泛地将+ve点与-ve点分开的超平面π。(ve代表vector,向量,也就是样本的向量)

    设π是分离这两类的超平面,π+和π_是两个平行于π的超平面

    π₊是当我们平行于π移动并与π最近的+ve点接触时得到的平面

    π₋是当我们平行于π移动并接触到π的最近-ve点时得到的平面

    d=margin = dist(π₊,π₋)

    • SVM试图找到一个π来最大化间隔。

    • 随着间隔的增加,泛化精度也随之提高。

    支持向量

    位于π₊或π₋上的点称为支持向量。

    SVM数学公式

    π: 边距最大化的超平面

    π: wᵀx+b=0

    π₊:wᵀx+b=+1

    π₊上的任何点或在正方向远离π₊的任何点都标记为正

    π₋:wᵀx+b=-1

    π₋上的任何点或在负方向远离π₊的任何点都标记为负

    优化问题为

    现在,这看起来不错,但是,它只在我们的数据是线性可分时起作用。否则,我们将无法解决上述优化问题,也无法得到最优的w和b。

    假设一个数据不是线性可分的场景:

    因为这四个点,我们的优化问题永远不会得到解决,因为这些点yᵢ(wᵀx+b)不大于1。

    这是因为我们的优化问题过于严格,它只解决线性可分数据。硬边距就是这种方法的名称。

    那么,我们可以修改它吗?我们能不能稍微宽大一点,这样它就可以处理几乎线性可分的数据?

    我们要做的是,我们做一个松弛变量ζᵢ(zeta),对应于每个数据点,这样对于位于+ve区域的+ve点和位于-ve区域的-ve点,

    ζᵢ=0。

    这就给我们留下了错误的分类点和间隔内的点。

    ζᵢ的含义,以图为例,当ζᵢ=2.5

    这意味着pt.4在相反的方向上与它的正确超平面(在本例中为π₊)相距2.5个单位。

    类似地,pt.1与最优超平面(本例中为π₋)的方向相反,距离为2.5个单位。

    当ζᵢ增大时,该点在错误方向上离最优超平面更远。

    改进优化问题

    让我们把它分解

    首先,约束条件:

    我们知道,

    现在:

    c是超参数。

    我们可以直观地认为优化问题为:

    如果c值较高,则损失项的权重更大,从而导致数据的过拟合。

    如果c值较低,则正则化项的权重较大,导致数据欠拟合。

    SVM对偶形式

    等等!我们怎么得到这个对偶形式的?

    这都和最优化有关如果我们深入研究这个问题,我们就会偏离我们的目标。让我们在另一个博客中讨论这个对偶形式。

    为什么我们需要这个对偶形式?

    对偶形式有时更容易解决,如果对偶间隙非常小,我们会得到相似的结果。特别是支持向量机:对偶形式非常重要,因为它通过核函数开启了一种解释支持向量机的新方法(我将在本博客的后面部分告诉你)。

    注意:在对偶形式中,所有xᵢ都以点积的形式出现,不像原始形式中所有xᵢ都作为独立点出现。

    αᵢ可以被认为是一个拉格朗日乘数

    观察对偶形式:

    • 对于每个xᵢ,有相应的αᵢ
    • 所有xᵢ都是点积的形式
    • 我们对一个新点的分类方式改变如下:
    • 支持向量αᵢ>0,非支持向量αᵢ=0。

    这意味着只有支持向量才是重要的,这就是将该模型命名为支持向量机的原因。

    现在,以对偶形式

    因此,如果给出一个相似矩阵,我们可以使用对偶形式,而不是原始形式。这就是支持向量机的优点。通常,这种相似性(xᵢ,xⱼ)被K(xᵢ,xⱼ)代替,其中K称为核函数。

    核技巧及其背后的直觉

    用核函数K(xᵢ,xⱼ)替换相似性(xᵢ,xⱼ)称为核化,或应用核技巧。

    如果你看它,它只是计算xᵢ和xⱼ的点积。那么,有什么了不起的?

    让我们以下面的数据集为例。

    很明显,在线性模型的帮助下,这两个类是不能分离的。

    现在,将数据集转换为具有 <x₁²,x₂²,2x₁x₂> 的特征的多维数据集。

    你看到了吗?应用适当的特征变换和增加维数使数据线性可分。

    这就是核支持向量机的作用。它将原始特征映射到一个高维空间中,在该空间中找到间隔最大的超平面,并将该超平面映射到原始维空间中,得到一个非线性决策曲面,而不必实际访问该高维空间。

    所以

    线性支持向量机:在xᵢ的空间中寻找间隔最大化超平面

    核支持向量机:在xᵢ的变换空间中寻找间隔最大化超平面

    因此,核支持向量机也能求解非线性可分数据集。

    让我们看看支持向量机中使用的一些核函数-

    多项式核

    定义如下:

    其中

    d=数据维度

    c=常数

    对于二次核,设c=1,即

    当维度为2

    这可以被认为是2个向量x₁和x₂的乘积,其中:

    现在维度=d'=6

    因此,核化与特征转换是一样的,但通常是d'>d,核化是在内部隐式地完成的。

    径向基函数(RBF核)

    它是最受欢迎的核,因为你无法确定要选择哪个核时,可以选择它

    定义如下:

    d的效果:

    当d增大时,指数部分的分子减小,换句话说,K值或相似度减小。

    σ的影响:

    如果你注意,当σ=0.3,在x=2,接近于0。在x = 4,σ= 1时和x = 11,σ= 10,它接近0。这表明当σ增加时,即使两个点是很远,相似的score可能也不会很低。

    例如假设有两个点x₁和x₂的距离为4个单元。如果我们应用σ= 0.3的RBF核,核函数K值或相似值是0。如果我们设置σ= 1,K值很接近0,但如果我们设置σ= 10,K值约为0.4左右。

    现在说明RBF核背后的直觉

    还记得我们在使用多项式核函数时得到的6维映射函数吗?现在让我们尝试找出RBF核的一个映射函数。

    为了简化数学,假设原始数据的维数为2,指数部分的分母为1。在这种情况下,

    如果我们试图找出RBF核的映射函数,就会得到一个无限向量。这意味着RBF核需要我们的数据映射到无限维的空间,计算相似性得分并返回它,这就是为什么如果你不知道选择哪个核,RBF核函数将是最安全的选择。

    用于回归的SVM

    到目前为止,我们已经研究了如何使用支持向量机执行分类任务。但支持向量机不仅限于此。它也可以用来执行回归任务。怎样?让我们看看!

    首先,让我们看看支持向量回归(SVR)的数学公式

    别担心!我帮助你理解。

    SVR的工作方式是,它试图找到一个最适合的数据点的超平面,同时保持一个软间隔=ε(超参数),这意味着所有的点都应该在超平面两侧ε距离。

    最小化这里的边界意味着我们想要找到一个超平面,这个超平面以较低的误差来匹配数据。

    注意:平方是为了使函数变得可微并适合于优化。对于SVC也可以这样做。

    这个公式有什么问题?

    这里的问题是,我们太严格,我们期望的点位于ε超平面的距离在现实世界并不经常发生。在这种情况下,我们将无法找到所需的超平面。那么,我们该怎么做呢?

    与我们在SVC中处理这个问题的方法相同,我们将为法向点引入两个松弛变量ζ和ζ*,以允许某些点位于范围之外,但会受到惩罚。

    所以数学公式现在变成:

    其中C确定所需的严格程度。C值越大,对边距外的点的惩罚就越多,这可能导致数据的过度拟合。更少的C意味着对边缘以外的点的惩罚更少,这可能导致数据拟合不足。

    与SVC中一样,图显示了SVR的原始形式。结果表明,对偶形式更易于求解,并且可以利用核技巧求出非线性超平面。

    正如我已经说过的,对偶形式的公式是有点棘手的,涉及解决约束优化问题的知识。我们不会深入讨论太多细节,因为这会转移我们对支持向量机的注意力。

    SVR对偶形式

    这是通过使用拉格朗日乘子求解优化问题得到的。

    对于一个新的点,我们计算输出值的方法是:

    你有没有注意到,xᵢ是点积的形式?是的,和我们在SVC中得到的一样。我们可以用前面提到的相似度或核函数来代替这个点积。应用核技巧还可以帮助我们拟合非线性数据。

    支持向量机的各种情况

    1. 特征工程和特征转换,这是通过找到上面讨论的正确的核来实现的

    2. 决策面,对于线性支持向量机:决策曲面只是一个超平面,对于核支持向量机:它将是一个非线性曲面

    3. 相似函数/距离函数,支持向量机的原始形式不能处理相似函数。然而,因为xᵢ点积的存在形式,对偶形式可以很容易地处理它。

    4. 特征的重要性,如果特征不是共线的,那么权重向量w中特征的权重决定了特征的重要性。如果特征是共线的,可以使用前向特征选择或后向特征消除,这是确定任何模型特征重要性的标准方法。

    5. 离群值,与其他模型如Logistic回归相比,支持向量机的影响较小。

    6. 偏差-方差,它依赖于支持向量机对偶形式中c的值。

    如果c值较高,则误差项的权重较大,因此模型可能会对数据进行过拟合;如果c值较低,则误差项的权重较小,模型可能会对数据进行欠拟合。

    1. 高维度,支持向量机的设计可以很好地工作,即使在高维度。如图所示,支持向量机的数学公式中已经存在一个正则化项,有助于处理高维问题。你可能会说像KNN这样的其他模型并不适用于高维空间,那么SVMs有什么特别之处呢?这是因为支持向量机只关心找到使边距最大的平面,而不关心点之间的相对距离。

    支持向量机的优点

    • 它有一个正则化项,有助于避免数据的过拟合
    • 它使用核技巧,这有助于处理甚至非线性数据(在SVR情况下)和非线性可分数据(在SVC情况下)
    • 当我们不了解数据时,支持向量机是非常好的。
    • 可以很好地处理非结构化和半结构化数据,比如文本、图像和树。
    • 从某种意义上说,它是健壮的,即使在训练示例包含错误的情况下也能工作

    支持向量机的局限性

    • 选择正确的核是一项困难的任务。
    • 支持向量机算法有多个超参数需要正确设置,以获得对任何给定问题的最佳分类结果。参数可能导致问题A的分类精度很好,但可能导致问题B的分类精度很差。
    • 当支持向量机的数据点数目较大时,训练时间较长。
    • 对于核支持向量机,其权向量w的解析比较困难。

    参考

    原文链接:https://medium.com/@anujshrivastav97/demystifying-support-vector-machine-b04d202bf11e

    欢迎关注磐创AI博客站: http://panchuang.net/

    sklearn机器学习中文官方文档: http://sklearn123.com/

    欢迎关注磐创博客资源汇总站: http://docs.panchuang.net/

    展开全文
  • 大家好,我你们拉登老师。之前有教过你么如何去除重复,大家还记得吗...提取唯一人只打卡了 1 次,什么原因?得单独拉出来分析一下。把表格中,只出现过一次数据提取出来,UNIQUE 函数,只需要加 2...

    私信回复关键词【2020】,获取100+套高颜值图表模板!

    大家好,我是你们的拉登老师。之前有教过你么如何去除重复值,大家还记得吗?

    不记得的同学可以点这里回顾一下☞去除重复值,一个函数轻松搞定,这个方法太简单了吧!

    今天来教你们另一个非常简单的小技巧——提取唯一值。

    提取唯一值

    有的人只打卡了 1 次,是什么原因?得单独拉出来分析一下。

    aa47ff110f9d5756f30bc98cd62748e0.png

    把表格中,只出现过一次的数据提取出来,UNIQUE 函数,只需要加 2 个参数。

    公式如下:

    =UNIQUE(C2:C25,0,1)

    参数说明如下:

    参数 1:要提取非重复值的区域。

    参数 2:如果按行提取非重复值,就输入 0(默认),如果按列提取非重复值,就输入 1。

    参数 3:如果提取只出现过 1 次的,就写 1。如果提取所有非重复值,就写 0(默认)。

    有时候,越简单的东西,越容易被认为低廉。

    对比一下,相同的效果,用传统公式要这样写:

    =OFFSET($A$1,MIN(IF(COUNTIF($H$1:H1,$A$2:$A$21)=0,ROW($A$2:$A$21)))-1,)

    ▲左右滑动查看

    看完这个公式,是不是觉得 UNIQUE 立马变得高大上了~

    觉得不错,可以给我们点个赞~

    私信回复关键词【2020】,获取100+套高颜值图表模板!

    展开全文
  • 为什么梯度的方向函数在该点的方向导数最大的方向,梯度的模是最大方向导数的值?大家在看复习全书时,有认真想过这个问题吗?小编在本文以二元函数为例详细讲解方向导数和梯度,并试图以尽可能通俗地语言回答上述...

    原标题:方向导数和梯度是什么?

    为什么梯度的方向是函数在该点的方向导数最大的方向,梯度的模是最大方向导数的值?大家在看复习全书时,有认真想过这个问题吗?小编在本文以二元函数为例详细讲解方向导数和梯度,并试图以尽可能通俗地语言回答上述问题。

    1.梯度

    首先看看二元函数梯度的定义:

    如果函数f(x,y)在定义域D内具有一阶连续偏导数,则对于定义域内D每一点P(x0, y0),都存在如下向量:

    28ae78f46194f34b5c2a1bc3af4acd2e.png

    则称上述向量为函数f(x,y)在点P的梯度,记作:

    053056476430efa14d3f81fa4cb8dc93.png

    而下面的算子称为向量微分算子或哈密顿算子(nabla算子):

    4ebea3d8bb32154260d554cf25d043df.png

    至于为什么在梯度定义中,要附加强要求,即函数f(x, y)在定义域内具有一阶连续偏导数,说实话,小编也没搞清楚。有人说具有一阶连续偏导,则必然可微,然后可以将梯度和方向导数联系起来,这说法有一定道理,但是可微与一阶连续偏导并不是等价的。尽管学习时有些知识点不甚理解,但是切记一定要以定义为准,科学家之所以这么定义,必然有其实际和理论上的考虑。

    接下来,仔细看看梯度。函数f(x,y)在点P的梯度是向量,向量是有大小和方向的,那函数在P点梯度的方向和大小是?

    这就涉及到向量的加法了,请看下图。下图标红色的部分用向量l表示,向量l的方向就是梯度的方向,向量l的模就是梯度的大小。

    a740a04c4161c05e69373bb147332c5d.png

    图1. 梯度示意图

    2.方向导数

    在讨论方向导数前,大家还记得导数、偏导数的几何意义吗?在一元函数中,某一点的导数就是曲线在该点的切线的斜率,也就是反映函数在该点的变化率。在二元函数中,偏导数反映的是函数沿x轴方向或y轴方向的变化率。而方向导数描述的是函数沿某一方向的变化率,在二元函数中,除了坐标轴两个方向外,还存在其它无数个方向,因此,方向导数用于研究函数沿各个不同方向时函数的变化率。

    同偏导数定义类似,请看看下面这种方向导数的定义:

    8d20b91aa1a46537dee6f46ad1c997e5.png

    结合下面这道例题来帮助大家理解方向导数的定义:

    b2be7c92f79dcbd8c549439acc553ccc.png

    首先要确定直线l的方向,看下图:

    df3d7dad3da5e94053b440dd7e2754db.png

    图2. 方向导数中直线l的方向示意图

    在图2中α、β分别为直线l与x轴正方向、y轴正方向的夹角。α、β共同表示直线l的方向。由图2,不难得出如下关系式:

    b69fd11f5dc119a74f3b79e86e098590.png

    现在假设在直线l上的点P,沿着直线l正方向即箭头方向前进一个单位长度1,对应于在横轴上移动cosα,在纵轴上移动cosβ。也就是说,当从p点沿直线正方向移动距离t时,二元函数自变量x变动tcosα,自变量y变动tcosβ,此时方向导数定义将变为如下形式:

    bacd48d9cb17bceb1d56d1612aee131b.png

    按照上述定义,将函数z的相关数据带入进去,得:

    8cf289ecfb7dfce4b1da64316f366909.png

    现在看看方向导数与偏导数的关系。若函数f(x, y)在点P(x0, y0)可微,有:

    43ad79b6b8303ad7ebacdec4ff8fc915.png

    至于如何证明上式,只要大家结合前面两个关于方向导数的定义,不难证明,你试试吧!

    3.方向导数与梯度的关系

    为方便理解,不妨把方向导数与梯度的条件和关系式放到:

    方向导数是标量,只有大小,没有方向。当函数f(x, y)在点P(x0, y0)可微时,存在如下关系式:

    1323cd3e5e138ec251f6a7ab1b80012d.png

    梯度是矢量,既有大小,又有方向,且梯度前提是函数f(x, y)具有连续一阶可偏导:

    00351bd26ae4cfc0db73542515392ab8.png

    从方向导数和梯度的定义看,给定曲线上一点,梯度也随之确定,但是方向导数还没确定,所以可以从方向导数推向梯度。

    可能你认为当cosα=cosβ=1,方向导数最大,但是你忽略了可行性的问题,因为没有哪条直线能够既与x轴重合,由于y轴重合。事实上α与β存在如下关系:

    b98d21d30f4da61e9dc2285d8beeca52.png

    将上式带入方向导数定义中,可得:

    ad70c15c7456c62ea3a71867e9ab806c.png

    从上式,可以轻松得到如下结论:

    方向导数最大的方向,为梯度方向,最大方向导数是梯度的模。

    方向导数最小的方向,为梯度方向的反方向,最小方向导数是梯度的模的相反数。

    责任编辑:

    展开全文
  • 我假设我现在的数据样本有m个,我的特征n个,现在我要计算任意两个特征之间的相关性,那么我假设我做的  这两个特征 , 那么我们的计算公式 ...呐呐呐,这相关系数不就是他们两个向量的余弦吗???   ...
  • 你必须知道495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    5.10但是如果NULL的值改变了,比如在使用非零内部空指针的机器上,用NULL(而不是0) 不是更好吗? 5.11 我曾经使用过一个编译器,不使用NULL就不能编译。 5.12 我用预处理宏#defineNullptr(type)(type*)0帮助...
  • 概念决策树就是一个类似于...回归就是根据特征向量来决定对应输出。回归树就是将特征空间划分成若干单元,每一个划分单元有一个特定输出。对于测试数据,只要按照特征将其归到某个单元,便得到对应输出。...
  • //处理第一个样本时初始化特征向量矩阵和类别矩阵,因为只有知道了特征向量的维数才能初始化特征向量矩阵 if( 0 == num ) { DescriptorDim = descriptors.size();//HOG描述子的维数 //初始化...
  • 《你必须知道495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    5.10 但是如果NULL的值改变了,比如在使用非零内部空指针的机器上,用NULL(而不是0) 不是更好吗? 58  5.11 我曾经使用过一个编译器,不使用NULL就不能编译。 58 5.12 我用预处理宏#define Nullptr(type)(type...
  • 5.10 但是如果NULL的值改变了,比如在使用非零内部空指针的机器上,用NULL(而不是0) 不是更好吗? 58  5.11 我曾经使用过一个编译器,不使用NULL就不能编译。 58 5.12 我用预处理宏#define Nullptr(type)(type...
  • LINGO软件学习

    2009-08-08 22:36:50
    因此,集属性的值一旦在模型中被确定,就不可能再更改。在LINGO中,只有在初始部分中给出的集属性值在以后的求解中可更改。这与前面并不矛盾,初始部分LINGO求解器的需要,并不描述问题所必须的。 2.3.2 定义...
  • (程序第91行)如果Yn*1的向量,就不能训练出字典了吗? ``` function [Dictionary,output] = KSVD(... Data,... % an nXN matrix that contins N signals (Y), each of dimension n. param) % ===========...
  • 请细细体会,当输入向量\(X\)输入感知器时,第一次初始化权重向量\(W\)随机组成,也可以理解成我们任意设置了初始,并和输入做点积运算,然后模型通过权重更新公式来计算新权重值,更新后权重又接着和...
  • microrobots-源码

    2021-03-08 02:22:41
    您可以找到图并检查特征多重性,如果零多重性1,则图连通;如果图Laplacian矩阵特征多重性二或更大,则它断开连接 根据游戏规则计算“相同”。 抽象,未解决问题和未来
  • 使用NumPy实施向量线性和多项式回归模型,并使用单独训练和测试集比较其性能1.使用NumPy load()方法读取数据集。 数据包含两个数组:'features'(包含变量CRIM到LSTAT)和'target'(包含变量MEDV)。 2.保留...
  • 线性回归可以当做一个特例) 梯度:梯度的本意一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。在机器学习...
  • 机器学习之梯度下降

    2019-07-03 23:10:00
     梯度:梯度的本意一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)。在机器学习中一般指的就是目标函数...
  • 要求就是J(θ)最大(极大似然估计),我们可以选用之前实验使用梯度下降法,但是该方法迭代次数较多,所以本次实验中使用的是牛顿迭代法: 牛顿方法: 用Hessian矩阵表示: 5. 在编程序前,要...
  • TTS-Papers-源码

    2021-03-05 17:41:44
    定义了基于平均值的组合函数以组合3个子系统输出(MGC和F0)。 子系统架构相同,但是在训练语料库不同子集上进行了训练。 10个雌性日本spk * 1k〜10k utt / spk; spk:10维一热向量; 使用
  • 基于不同语料+编码器+目标任务中文预训练模型仓库、中文自然语言处理向量合集、基于金融-司法领域(兼有闲聊性质)聊天机器人、g2pC:基于上下文汉语读音自动标记模块、Zincbase 知识图谱构建工具包、诗歌质量...
  • 观看了剩余视频12到14,内容包括特征向量和特征,以及抽象向量空间。 B站播放列表在这里。 微积分本质 | 第30天 完成上一播放列表后,YouTube推荐了新内容《微积分本质》,今天看完了其中3个视频,包括...
  • C++编程思想习题

    2012-06-18 09:36:11
    3.3.2它吗 3.4对象布局 3.5类 3.5.1用存取控制来修改stash 3.5.2用存取控制来修改stack 3.6句柄类(handleclasses) 3.6.1可见实现部分 3.6.2减少重复编译 3.7小结 3.8练习 第4章 初始化与清除 4.1用构造...

空空如也

空空如也

1 2
收藏数 40
精华内容 16
关键字:

向量的值是向量的模吗