svm算法中使用高斯核代替线性核,svm支持向量机核函数有哪些
引入:
即使输入相同的数据,不同的分类器处理方法不同,结果也不同。今天重新填坑内核函数,顺便学习SVM。
支持向量机、hxsdy核函数支持向量机背景核心思想公式和SVM分类公式超平面公式归一化超平面公式推导核函数为什么要和SVM结合?核支持向量机核函数及其在简单过程中的应用名词Mario空间(Hilbert空间)内积(归一化vs标准化)内积空间(pre-Hilbert空间/mhddy空间(无限鸭)范数)无限鸭与距离(distance)偏差-方差权衡、凸函数、原问题与对偶问题、原vs对偶
支持向量机背景介绍支持向量机的思想很直观,但是细节比较复杂。它涵盖了理论上的二元分类模型,如凸优化,核函数,kdddh等。它还可以用于回归分析。最基本的表达形式是线性约束凸二次规划。有最优解的核心思想和策略:边际最大化,噪声干扰最小且软区间唯一的超平面(离超平面最近的点为支持向量(1,1) 03358 www.sina.cocom .坐标轴为药效,所有点为输入数据,红色表示药效不好。现在,目的是输入新药效果数据,判断好坏。
简单地把分界点放在药效最差的最大值是不合理的。如下图所示,橙色线表示此时的边界点。这条分界线的左边,药效不好,右边,药效好。当出现新的观察点(黑点)时,位于橙色线的右侧,则判断药效良好。其实明显更接近疗效差的地步,应该把他划入疗效差的范畴。同样,把分界点放在疗效最好的最小值也是不合理的。
在以上基础上,能否设定橙点最大值和绿点最小值的分界点?如下图所示,当一个新的黑点出现时,我们简单的将其归为疗效差的一组。这样看也是有道理的:
此时,橙色点的最大值、绿色点的最小值与分解点之间的距离称为边距。如下图中橙色和绿色虚线所示,最大间隔与数据集的橙色和绿色点相当。此时的区间称为硬区间,对应的数据可以线性分离。
但是,如果数据集如下图所示呢?
有橙色偏差值,药效差,但可以看出特别接近药效优势。
此时,间隔可以最大化边界点非常接近绿色点,但是非常远离大多数橙色点。
在这种情况下,如果出现新的黑点,即使接近药效更好的点,也会被判定为药效差:
总结:最大区间受训练集离群值的影响很大。那么,如何让最大间距对离群值不那么敏感呢?我们有必要允许错误分类。您可以在带着以上关键词来理解支持向量分类器,过程如下中选择合适的边界点。
如果允许误分类,那么边界点与观测点之间的距离就不再叫区间,而叫软区间(严格来说,软区间对应的是线性不可分的情况,但这里有明显的离群点,所以引入)。通过交叉验证,可以确定边界点,在此基础上看允许多少误分类,确定软缺口的大小。最后,我们可以得到最佳的分类器。偏差-方差权衡
就是上面一维直线的例子,它的边界点是一个点;如果是在二维平面上,边界就是一维直线;如果是三维空间,它的分解就是二维线;比如四维,给我们加上了时间的维度,那个边界就是某个时间点的三维空间,也就是超平面。软间隔分类器就是支持向量分类器,支持向量指的是位于软间隔边缘和内部的观测值
和SVM分类公式超平面公式。
我们先来看两个简单的超平面。是一个二维超平面。
三维超平面
D维空间的超平面与2D-3D的超平面相同。D维空间的超平面维数为(d-1),其超平面公式为:
这里是超平面的法向量(D维中的列向量),法向量(决定超平面的方向)面向的面是它的正面,反面是它的反面)。严格来说,所有的分界,都可以称为超平面
x也是D维的列向量,指向要分类的点。
b和是超平面参数,b是超平面和原点之间的距离。
距离公式推导公式:和高中到直线的距离公式基本相同。(这里写的是右下方的方块,意思是一样的。) )
我对以下公式的理解是:
第一个和第二个公式是从点到平面的距离公式计算出来的。为了最大化区间*,首先选择最接近超平面的支持向量,计算它们到平面的距离,然后选择离这些最近点的最大距离作为最大区间。但此时的区间是一个函数区间,受参数和b的影响,如果把那两个人翻倍,此时的超平面还是原来的超平面,只是区间变小了。所以这个区间不靠谱,需要升级到几何区间。
第三个公式,把模的平方拿出来,以便后面计算。
在…之中
为了便于求解,设:y * f(x)=1。比如下图中的s.t=subject to表示约束条件为y * f(x)=1。
通过以上推导,得到以下原始问题:
当C=0时,边界没有那么复杂。
当C=inf,即任意数时,边界复杂度增加。
由于约束条件在计算机中模拟起来不那么方便,需要转化为对偶问题。在约束条件中加入一个拉格朗日对偶,使原函数和约束条件一起形成一个新函数,新函数包含,b,三个参数。
经过层层推演
过程太长看不下去,可以得到最后的对偶问题。
归一化超平面公式如果使用归一化或标准化数据集,则超平面公式为:
当* x1时,归为一类,该类的标号为1。当* x - 1时,归入另一类,该类的标签为-1。如果我照常做的话,我要归一化,因为我的数据种类很多,数据的单位也不一样,有的数据特别大,有的数据是小数点,如果不归一化的话结果会很奇怪。
SVM分类1. 线性SVM:
硬区间SVM:数据是线性可分的,没有明显的异常值。在硬区间中,最接近超平面的X向量就是超平面的支持向量,这些支持向量决定了最大化区间的超平面。
软区间SVM(数据近似线性可分。比如上面有一个异常的离群值,但是分类错误。这时候需要引入铰链损失函数)。二. 非线性SVM
通过引入核函数,分类器在原始输入空间是非线性的,但在变换后的特征空间,支持向量机可以拟合最大区间超平面。
详情见下面的内核函数部分。三. 损失函数
因为软区间分类器的数据是线性不可分的,所以引入了铰链损失,公式如下:
其中y是分类器的原始输出,而不是预测的标签,因此公式也可以写成:
当(1)满足时,xi在区间的右边,那么函数为零:
对于区间错误一侧的数据,这个函数值与距离区间的距离成正比。然后我们想最小化
(这里,用于权衡增加区间大小和确保xi在区间右侧之间的关系)
因此,对于足够小的值,如果可以对输入数据进行线性分类,软区间SVM和硬区间SVM的行为将是相同的,但即使不能进行线性分类,它们仍然可以学习到可行的分类规则。
注意:hinge loss不是可微函数,而是一种凸函数,它保持了支持向量机解的稀疏性。由于是非支持向量的普通样本对应的是hingeloss的零区域,所以所有的普通样本都不参与最终的超平面决策,这是支持向量机的最大优势,大大降低了对训练样本数量的依赖,提高了训练效率。
kernel trick的核心思想Kernel trick只描述了激情马里奥空间中每一对点的联系[包括:点与点之间的距离,对应的协方差(即两个变量相对于彼此如何变化)],但不做直接转换。简单来说,内核函数只计算高维数据的连接,不负责将数据转换到更高维,所以不能简单的理解为低维到高维的映射。(这也是英文名的由来。我感觉那一招相当于作弊。他不是计算最终值,而是直接计算点与点之间的联系。)核函数的具体作用是在解决SVM对偶问题的优化问题时,特别是当(x)的维数很高时,更容易计算特征向量(x)。为什么要把核函数和SVM结合起来?首先,核函数可以直接计算高维数据之间的关系,而不需要SVM将数据从低维转换到高维,这可以大大减少支持向量机的计算量。其次,可以帮助非线性数据在高维空间中构造超平面。
上述核心思想的第七点说:所有维度的边界都可以称为超平面,即使存在离群点,数据仍然是线性可分的。比如核心思想的第五点,如果直接取中点来构建超平面过于简单粗暴,是不合理的,所以采用了软区间SVM。
下一个例子是真实数据非线性。如图所示,橙色圆点仍然表示疗效差的数据,绿色圆点表示疗效好的数据。如你所见,服用剂量过高或过低都会导致疗效不佳:
在这种情况下,在这条一维直线上,根本没有办法构造超平面。这时候就需要引入核函数来帮我计算数据在高维形式下的联系。
在本例中,使用了多项式核函数。图中横轴还是药物剂量,纵轴是药物剂量的平方。所以很容易构造一个超平面来区分药物效果的好坏。当预测点(黑点之后)出现时,也将其分配到超平面的顶部,即药效差的一侧。核支持向量机的简单过程一. 输入低维数据
二. 将数据从低维到高维进行转换
注意:最合适的换算方法是什么?(比如为什么上面的数据是二次的,不是三次的,开处方后也不是乘以一个系数)
核包括多项式核函数和径向基函数。例如,多项式核函数用于计算上述二维空间中每对观测值之间的关系,这些关系用于寻找合适的SVC。图上的项数d=2,那么你可以把项数增加到3,以此类推,最后交叉验证找到最合适的d。
第二种核函数,3354径向基核函数,用于无限维空间。在上面的例子中,如果使用径向核,其作用类似于加权最近邻。举个例子,如果我输入一个新的观察值,它最终会被归入疗效好坏的那一组,这个组会受到最近点非常严重的影响。如果距离比较远,对它的影响也会相应小一些。
三. 通过交叉验证选择最合适的支持向量分类器
常见的核函数及其应用I .多项式核函数
二。双曲双截核函数(神经网络)
三。hxsdy径向基核函数(无限维,一般数据无需先验知识即可使用此)
“希尔伯特空间”一词引入了激情,激情是由几个函数作为独立坐标组成的抽象空间。
内积)向量的内积):
测量向量之间的相似性对于两个向量X和Y,内积是一个向量到另一个向量的投影。
如果x=(x1,x2,…,xi),y=(y1,y2,…,yi)函数的内积:
因为一个函数由无限个向量组成(当x-0时),所以函数和向量可以有内积。
对于函数f(x)和g(x),
向量与函数的区别:向量的维数是离散的。我们只有一维,二维,…,n维向量(n是整数集),没有0.5维,1.5维向量。但是函数的维数是连续的,我们需要用相邻维数之差(比如 x)来归一化。标准化和规范化这两个过程是数据的特征缩放。
归一化:归一化的数据属于(0,1)或(-1,1),极值归一化(0,1)。
均值归一化(-1,1)一般情况下,数据稳定,极值没有被夸大,或者极值的具体值未知,可以使用归一化。
标准化:数据标准化后,符合=0,=1(提供原始数据的均值和标准差)的正态分布的标准差标准化(z-score标准化)。
在标准化的内积空间(pre-Hilbert空间/mhddy空间)中经常使用一般的异常值和噪声。内积空间叫做准激情的马里奥空间。对他来说是合理的,因为上面刚刚提到,激情的马里奥空间是由函数组成的,函数上的点是连续的,但向量是离散的。那么在线性空间中定义内积就是成为激情的马里奥空间的第一步,这个空间叫做内积空间。
无限鸭(范数)的定义:向量在内积空间的“长度”是无限鸭和距离差。
常用距离(出乎意料的,我发现了我专业常用的东西。学这个还是有用的。)Bray-Curtis相异度,可以用来衡量不同地方物种组成的差异,有以下公式
皮尔逊相关距离
注:(X,Y)是皮尔逊相关系数,公式如下:
Mhddy距离(最短直线距离)
余弦相似距离:通过测量两个向量之间夹角的余弦来衡量两个向量之间的相似性。
曼哈顿距离:标准坐标系中两个向量的绝对轴距之和。
下图可以清晰地区分mhddy距离、余弦相似距离和曼哈顿距离。
偏差-变化权衡)1。定义(偏差/方差)
偏差:学习拟合的结果的期望值与真实结果之间的差距。可以通过增加模型的复杂度来减少偏差,但是过多的参数和过于复杂的模型会导致过拟合。
方差:学习和拟合得到的结果的不稳定性,即不同训练集输出结果的差异。
2.定义和解释:
输入以下数据集,以获得身高和体重的相关性。
将数据分成两组。下面的蓝点代表训练集,绿点代表测试集。因为是随机分组,所以可以分很多次,可以有很多训练组。
先用线性回归学习一下,但是线性回归的直线再怎么调试,也捕捉不到正确的身高体重关系。模型输出的结果,和真实样本之间的差异称为偏差。由于线性回归模型的这条直线与真实样本的关系“线”差距较大,所以线性回归模型的偏差较大。
既然直线的偏差这么大,那就直入曲线,包含每一个点,这样偏差最小,为0。
如果只比较训练集和真实样本之间的偏差,这个曲线模型比线性回归模型要好。但如果用刚秒的数据集(测试集)验证,会发现线性回归模型的偏差更小。
即使曲线模型经过测试集验证后发现偏差很小,当输入不同的训练集时(如第一点所述,训练集可以有很多),也会产生很多不同的曲线。这些曲线是不同的模型,最终输出的结果也大相径庭。衡量所有训练集输出的所有结果之间的差异,就称之为方差。
3.如何实现取舍?
从上面直线和曲线的区别可以知道,直线虽然偏差大,但方差小;虽然曲线偏差小,但方差大。换句话说,直线给出的预测可能不是最接近真实值的,但却是最稳定的。此外,虽然曲线与训练集对应良好,但与测试集相差甚远,称为过拟合。刚开始训练时,偏差大,方差小,因为模型太简单(如上面的直线);但随着参数调试和训练次数的增加,偏差减小,方差增大,两者形成的曲线的交点就是取舍点。凸函数维基百科的图感觉有点复杂,但其实它的意思和高中数学函数的中点问题基本相同,所以我把两个图都放出来,方便理解。
凸函数的性质
(1)如果f(x)是凸函数,那么-f(x)是凹函数
(2)如果满足以下条件,则它是凸函数:
(3)在f(x)是凸函数的前提下,如果满足以下条件(最多只有一个最大值),则它是严格凸的:
注:* * * * X * * *是凸集,连接凸集中任意两点的直线都包含在凸集中。
原始vs对偶问题(1)通常对偶问题是指拉格朗日对偶问题。
(2)下图很常见。红线是原问题的图,蓝线是对偶问题的图。对偶问题最优原始解带来了一个下限。左边的强对偶是因为原问题的最优解是对偶问题的最优解,右边的弱对偶是因为两个最优解之间存在对偶缺口。
python实现后期,爬专业文献的数据,然后补洞。
参考机器学习中的内核是什么?
如何通俗地解释充满激情的马里奥空间?它有特殊的性质吗?如果有,是什么?
以及标准化和搞笑的电话距离。
和矢量距离。
偏差和方差
偏差-方差权衡
线性支持向量机
如何理解SVM的铰链损耗?
SVM (2):从凸优化到SVM对偶形式的推导
支持向量机——你应该知道的数学
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。