机器学习入门七

如何评价你的算法学习得到的假设

确定假设函数的参数时,应该以参数使得训练误差最小化为主要目标。但是得到最小误差的假设并不一定是一个好的假设,因为他仅仅是对当前的训练集而言,有可能已经存在过拟合问题

进行评价算法学习得到的假设,可以将数据集按7:3,分为70%的训练数据,30%的测试数据

结果验证

在这里插入图片描述

如下图所示,就是在70%的训练数据上进行训练得到具体的θ,然后代入到测试数据集中的代价函数中,并基于已经得出的θ进行求解测试数据集的代价函数值
在这里插入图片描述

错误分类

在逻辑回归中可以进行错误分类进行算法评估,在从训练集中拿到具体的θ的时候,如下当h(x)≥0.5的时候,预测输出趋向1,但实际的y=0以及相反的情形,都设置为1,表示错误,其他预测正确的情况设置为0,对测试集累计输出错误分类结果,就可以进行评估具体的算法性能
在这里插入图片描述

模型选择

如下,假设函数究竟是使用一次函数还是二次还是n次函数,这可以进行测试,假设使用d表示d次函数,如下为1到10次项的假设函数,可以分别对下述假设函数,通过在训练集的基础上最小化其对应的代价函数,最终求出对应的θ,然后将θ代入到新的,与测试集相关的代价函数中,并得到对应的代价函数值,最终比较训练集输出的代价函数值,进行选择适合的d相关的假设函数式,如下通过比较最终确定d=5为最适合的例子
在这里插入图片描述

上述中,仅使用训练集以及测试集,就存在一个问题是,他是通过训练集和测试集进行拟合对应的d,但这仅仅是对现有训练集数据进行拟合的,并不能体现对新样品的一个适用情况,也就是说并不能公正地评估其泛化能力

为了解决如上模型选择的问题,可以将数据进行重新分配,分为三部分,包括训练集、交叉验证集(验证集)、测试集,其比例可以是60%、20%、20%

在这里插入图片描述

重复上述过程,在计算误差的时候,使用的不是测试集而是交叉验证集,最终拟合出d,如下选择出d=4的多项式。使用测试集合来进行评估拟合出来的模型的泛化能力
在这里插入图片描述

偏差和方差

诊断偏差和方差

如果你的算法不理想,那么要么不是偏差比较大要么就是方差比较大,换言之,就是不是过拟合就是欠拟合。判断是偏差还是方差对于往后的算法改进有重要意义

如下两条曲线,是在上述例子基础上获得的相关误差的模型,最底下的是训练集相关的误差曲线,上方是交叉验证集的误差曲线

横轴表示多次项式的次数,也就是对d次项式进行选择最适合当前数据的模型

在一直多项式的最高次项d的情况下,得到的误差相关分布如下,此时可以看到

  • 训练集的相关误差曲线越来越小,也就是误差越来越低,由之前的情况可以知道当d越大的时候,虽然训练集的误差比较小,但是已经出现了过拟合的现象
  • 交叉验证集的误差项先减少后增大

在这里插入图片描述
判断是高偏差还是高方差,可以根据上述两条误差曲线的关系确定,训练集的误差高并且交叉验证集的误差也高的情况下,是高偏差,如下两个部分
在这里插入图片描述
而交叉验证集的误差高,但是训练集的误差远小于它,这种情况是高方差

在这里插入图片描述
在这里插入图片描述

偏差和方差与算法正则化的关系

如下h(x)中的,当λ非常大的时候,整体惩罚项目的权重比较大,那么就会出现左图一条直线的情况,当λ比较小的时候,例如λ=0,那么相当于没有正则项,那么就处理不了过拟合问题,因而λ的大小会产生具体的误差,因而正则化参数λ的选择也是至关重要的

在这里插入图片描述

对于方程中λ的选择,可以类似上述对多次项d的选择,不断进行尝试

如下λ从0.01开始不断成倍增长,最后到10,不断代入到J(θ)中并求出相应的θ向量组,代表其中的特征变量的值,然后使用交叉验证集以及训练集进行验证
在这里插入图片描述
如下,在验证数据集的时候,使用原始的J(θ)进行推导θ相关的向量集,但对于训练集相关的J(θ)train以及交叉验证集的J(θ)cv是不需要添加正则项的,因为此时二者的J(θ)函数都代表了平方误差的平均值,我们需要用到的是具体的误差,用不上正则项

根据训练集以及交叉验证集得到如右图所示的图像,其x轴是λ,y轴是错误分类的值(该值越大,错误越多,也就是按照对应的指标,在预测错的时候加1,没错就加0)。其中上方曲线是交叉验证集的误差函数,而下方是训练集的误差函数

可以看到在最左侧,λ比较小,这个时候训练集的误差比较小,这个时候训练集产生了过拟合问题,因为此时的交叉验证集上,其误差比较大,二者相差比较大的情况,属于高方差的情况,而右边,λ比较大,同时交叉验证集以及训练集的相关误差都比较大,这个时候就是产生了高偏差问题
在这里插入图片描述

学习曲线

可以用来检查你的学习算法运行是否一切正常或者你希望改进算法的表现,那么学习曲线是一种很好的工具。可以用学习曲线去判断一个学习算法是否处于偏差、方差或者二者都有

如下左图为相应例子的训练集的学习曲线,其中横轴是训练集的大小,纵轴是相应的误差大小,随着训练集的规模不断增大,训练集的误差不断增大

在这里插入图片描述

如下粉色曲线为相应交叉验证集的相应的学习曲线,随着输入规模的不断增大,模型的泛化能力不断增强,交叉验证集的错误不断减少
在这里插入图片描述

处于高偏差

如果学习算正处于高偏差的情况下,那么选用更多的训练集数据对于改善算法表现无益,如下例子中,无论输入的数据规模怎么变化,因为预测模型比较简单,如下的一次函数,并不会随着输入数据变化而有相应变化,因而对数据的影响并没有太大的益处

在这里插入图片描述

处于高方差

高方差情形如下,如下表达式中使用了x的100次幂作为预测函数的最高次幂,并且λ比较小(也即是惩罚项没有太大的作用),这就是过拟合的情况

与高偏差的情况相比,不同的时候,当训练集以及交叉验证集达到一定规模的情况下,如下,上下误差是相对高偏差情况是比较大的
 对于高方差的情况,增大数据集合对学习算法的改进是有效的,当样品不断输入,交叉及以及训练集的学习曲线将会不断靠近

在这里插入图片描述

当出现大量错误的时候应该怎么处理

  1. 获取更多训练数据
    这种方法可以解决高方差问题,但是不能解决高偏差问题
  2. 减少特征量
    这种方法可以解决高方差问题,但是对于高偏差而言,使用更少的特征是无济于事的
  3. 添加额外的特征
    这是解决高偏差的一个方法,你要添加更多特征时,说明你当前的假设太简单,需要更详细的特征描述去拟合训练集
  4. 增加多项式
    这是类似于添加额外的特征,是用于修正高偏差问题的方式
    5.减少正则化参数λ以及增大正则化参数λ
    从上述陈述中**,减少正则化参数λ有助于修正高偏差,而增大减少正则化参数λ有助于修正高方差**

误差分析

系统构建思路

在设计一个机器学习算法的时候,这里推荐的方法是不是去精细设计一个算法,而是设计一个相对简单可用的算法,能跑起来,虽然此时误差可能比较大,但是至少能用,然后再进行误差分析,画学习曲线,然后选择具体的方法去解决。例如对一个垃圾邮件分类,简单实现算法后,进行具体的应用,对分类错误的邮件进行分析,然后进一步优化算法

在这里插入图片描述

不对称分类的误差评估

在一个训练集中,正样本的数量远多于负样本的数量,这种叫做偏斜类

如果你有一个偏斜列,使用分类误差或者分类精确度来作为评估度量可能并不能很好衡量算法,因为你可能会获得一个很高的精确度以及一个非常低的错误率,但是我们并不知道是否真的提升了分类模型的质量

在偏斜类中,如果我们的算法修改成总是预测某一类并且该类占有绝大多数的样本,那么他就会得到一个很好的效果,例如在99.5%的样本的样本是无癌症患者,而0.5%是有癌症患者,如果一直无癌症,那么会得到一个比较好的结果,但是并不能知道是否提升了模型的质量

当我们遇到这样一个偏斜类时,我们需要一个不同的误差度量值或者不同的评估度量值,其中一种评估度量值叫查准率和召回率(Precision/Recall)

混淆矩阵

在 二分类问题上,2*2表格基于实际类和测试类,得到如下数据表格。其中上方表示的是实际的类,左边是测试类的值

  1. 预测为1,并且实际也为1,称为真阳性,可简单记为TP
  2. 预测为1,但实际为0,称为假阳性,可简单记为FP
  3. 预测为0,实际为1,上称为假阴性,可简单记为FN
  4. 预测为0,实际也为0,称为真阴性,可简单记为TN
    在这里插入图片描述

查准率(Precision)和召回率(Recall)

  • Precision = TP/(TP+FP)
  • Recall = TP/(TP+FN)

在这里插入图片描述

对于二者,举例如下,例如,我们有1000封邮件,其中垃圾邮件有100封,仍然是希望预测出其中的垃圾邮件。

  • 如果我们希望precision高,那么在极端情况下,我们只把最最可能是垃圾邮件的那一封邮件,也就是No.1的那一封挑出来。在这种“千里选一”的情况下,这一封肯定是垃圾邮件,这时候precision高达100%。根据上述公式,预测出来的阳性样本只有1个,也就是(TP+FP)=1,并且TP=1,这个时候就是100%。但是,Recall相应的就会非常低就只有1%。因为在样品中(TP+FN)=100,根据公式可以得到1%的数据
  • 如果我们希望recall高,那么极端情况下,我们只要无脑把所有的样本都预测为垃圾邮件,那么此时我们的recall就可以高达100%,但是此时precision相应的只有10%

通过计算查准率和召回率,我们能更好地知道分类模型到底好不好。结合上述偏斜类的问题,如果当一个假设他总是预测y=0,即使他的相关误差比较小,但是召回率却是0,同样不能算他是一个好的算法,通过上述两个标准,就不能进行通过专门的设置来达到一个欺骗的结果

我们能够肯定拥有高查准率或者高召回率的模型是一个好的分类模型

查准率(Precision)和召回率(Recall)的相对平衡

在我们一般的应用中,我们希望 查准率和召回率相对平衡

二者的矛盾性

根据公式,查准率和召回率是具有矛盾性的

如下图,想要提高查准率,只需要提高判断y=1的阈值,因为查准率就是在判断为真阳性的个体在所有预测值中的比例,因而这阈值越高,那么越精确,查准率就越高

但是,这个时候召回率就越低,因为阈值变大,筛选的真阳性在同条件下是减少了,那么他相对于所有实际为阳性的样本中,所占的比例是下降了

因而查准率是倾向于更准确确定一个个体的是否为真阳性,例如肿瘤例子中,提高阈值就表示要精确把握这个人就是得了肿瘤

在这里插入图片描述
提高召回率可以通过更低的阈值,分析类似上述

更高的召回率是为了不放过一个可疑的个体,就像之前的例子,1000封邮件,100个垃圾邮件,直接抽完1000个,这里边肯定包括全部的垃圾邮件,那么100/100,查准率就是1,其他900不确定,那就查完,一个都不放过

在这里插入图片描述

F1 Score

查准率和召回率可以评估一个算法的好坏,但二者存在一定矛盾,如何自动选择通过二者选择较好的算法?这就需要另一个评估度量
在这里插入图片描述

我们可以设这个度量是F1,他的公式如下,也就是查准率和召回率的平均值,但是明显这是一个不好的方式,如算法3中,经过评估,数据最后的召回率比较高而精确率比较低,明显这就是一个不好的算法,例如上述肿瘤例子中,无肿瘤的样本只是占用少部分,如果我们的算法一直预测y=0,那么就会得到一个更高的召回率,这明显是不好的

通过公式也可以得到算法3的F1值最高,但是通过综合判断算法3并不如算法1、2

在这里插入图片描述
如下更换F1的公式,可以看到算法3的F1值最小,这是因为通过分子相乘的方式使得数据倾向严重的数据进一步获得更小的值

如下F1相关公式并不是唯一的
在这里插入图片描述
在这里插入图片描述

机器学习数据

不要盲目大量收集数据,例如对于高偏差的情况下,大量数据是没用的

我们需要一个低偏差以及低方差的算法。通过大量的具有完整信息的参数可以实现低偏差,在此基础上使用大量训练数据进行训练可以实现低方差的结果

优化目标

很多监督算法的性能非常相似,所以经常需要考虑的不是你使用哪个算法,而是算法训练所使用的数据量

逻辑回归方程作修改能够得到一个支持向量机(SVM)

支持向量机:一种算法,在学习复杂的非线性方程时,能够提供一种更为清晰和更为强大的方式

在logistic回归上支持向量机

在这里插入图片描述

当y=1,使得z越大,对应的代价函数值越小

在这里插入图片描述

对于支持向量会使用新的代价函数,如下紫色曲线跟逻辑函数在y=1的情况下非常相近,事实上这会使得支持向量机拥有计算上的优势,并且使得之后的优化问题变得简单,更容易解决
在这里插入图片描述
在这里插入图片描述

对于支持向量机,会使用如上类似的方法,进行拟合相应的曲线,并在值上贴近原来的函数

在这里插入图片描述
然后使用新的Cost函数进行替代原来的代价函数

在这里插入图片描述

支持向量机中相对logistic回归的改变

代价函数部分去除常量

按照惯例,在支持向量机,一些东西的写法略有不同,比如代价函数的参数会稍微有些不同,首先我们要去掉1/m这一项,这是因为早使用支持向量机和logistic回归时,热门遵循的惯例略有不同。去掉1/m同样会得到θ的最优值,因为1/m是一个常数,因此在解决这个问题的时候,无论前边是否存在1/m这一项,我最后都能得到相同的θ最优值

在这里插入图片描述

理解上述可以有如下例子,二元一次函数函数,如下整合的(u-5)2这一项,即使前边乘了个10,但是并不妨碍得出u=5使得整个函数最小的结果
在这里插入图片描述

正则项的正则化参数改变

在logistic回归中我们的目标函数有两项,一部分是代价函数,一部分是正则化项,上述logistic在代价函数部分进行支持向量机,而正则化项同样有相应的改变

对于带正则化项的代价函数,他的整体可以表示为A+λB,其中A为代价函数项目,而B为正则项

在logistic中,使用λ去平衡正则项和代价函数之间的关系,而在支持向量机中,不使用λ,而是在代价函数前添加常数项C进行调控二者的平衡,表示更关注于代价函数的变化

即使相应的表达是发生改变,但是得到的θ的最优值依旧是不变的

在这里插入图片描述

如下最终得到支持向量机的总体优化目标,当优化如下函数就得到SVM学习得到的参数

在这里插入图片描述

支持向量机的假设函数

不会输出概率,他直接进行一个预测

如下在优化支持向量机对应的代价函数以后,会得到θ的最优解,而支持向量机所要做的是,他进行了一个直接的预测,如下h(x)为支持向量机的假设函数,当θTx≥0的时候直接输出1,其他情况输出0.而不是输出一个概率

在这里插入图片描述

直观上对大间隔的理解

有时候人们会把支持向量机叫做大距离分类器

当y=1,支持向量机的图像如下,当θTx≥1的时候就可以使得代价函数的值为0,另外的如此类推

在这里插入图片描述

支持向量机的一个性质是,是当θTx≥0的时候就能正确地进行分类

在这里插入图片描述
但支持向量机有更高的要求,不是恰好能正确分类就行了,如下例子,就是说不能选择的阈值是略大于0,而是选择值更大的,例如选择1。该过程是在支持向量机中构建一个安全因子(一个安全间距
在这里插入图片描述

在支持向量机的常数项C的非常大的情况下,我们迫切要使得代价函数部分变成0,那么根据图像就有θTx≥1

![下![](https://img-blog.csdnimg.cn/150fad84c5154c679fb038b337af0680.png)、

对于安全距离,更直观的理解如下,例如将如下正负样本进行分类,一般曲线可以有绿紫的两种情况,二者都靠近正负样品,而SVM拟合曲线如下图黑色线,而该模型更稳健

在这里插入图片描述
这条黑色的决策边界,拥有更大的距离,这个距离叫间距

分离样本时,黑色决策边界的效果比红/绿决策边界效果更好。而这个距离叫支持向量积的间距,这使得支持向量机具有鲁棒性,因为他在分离数据的时候会尽量用大的间距去分离,因此支持向量机有时候称为大间距分类器

如下黑色直线与蓝色的平行线之间的间距成为支持向量机的间距,该间距比支持向量机的决策边界与最近的样品的距离还要远一些

在这里插入图片描述

上述例子中都是在常数C非常大的时候进行构建的大间距分类器,如下图左下角出现一个异常点,在没有异常点的时候,支持向量机构建的决策边界是如黑色直线,而在出现异常点后,就会进行调整并称紫色的巨册边界,但是如果在C非常小的情况下的,决策边界会出现不改变的情况,也就是如下出现左下角的异常点的时候,支持向量机的决策边界依旧是黑色的直线
在这里插入图片描述

上述例子中只是直观地去感受大间距分类的作用,并且只有在C非常大的情况下才存在的。在图像上的直观的理解

大间隔分类器的数学原理

这里解释支持向量机的优化问题和大间距分类器之间的联系

向量内积基础

u的范数使用**||u||**表示,也就是向量u的长度,如下

在这里插入图片描述

假设u由u1和u2组成,v由v1和v2组成,如下,实际u=u1+u2,v=v1+v2。uTv实际上就是uv两个向量的内积,按照概念uv之间的内积,实际上就是v在u上的投影,如下红色部分再乘上u的范数。

即uv = cosθ||u|v|

p = cosθ|v|(其中θ是v和u之间的夹角)。那么uTv = p*||u|| = u1v1+u2v2

在这里插入图片描述
在两个向量的内积中,u和v的夹角大于90°并小于180°,那么uv < 0
在这里插入图片描述

支持向量机的优化问题和大间距分类器之间的联系

如下是我们之前支持向量机模型中的优化目标函数
在这里插入图片描述
本例子中为了方便而言,将θ0设置为0,也就是将截距设置为0,并假设相关特征量仅有θ1和θ2

将二者按目标函数进行展开并化简到如下结果,这个时候仅包含θ1和θ2的优化目标函数实际上等于1/2||θ||²

由之前的支持向量机的优化函数图像例子中,如果y=1,可以知道当θTx(i)≥1。y=0,可以知道当θTx(i)≤-1。
在这里插入图片描述

对于θTx(i)这部分可以类比上述uTv,并并并画出如图图像
在这里插入图片描述

将θTx(i)转化的θTx(i) = p(i)||θ||,这里可以参考上述内积的基础
在这里插入图片描述
如下左图中,绿色不会是当前例子的支持向量机的最优选择,参数向量θ实际上是与决策边界垂直的,并且上述设定了θ0=0,那么他肯定是经过原点的,如下图所示,由上述得θTx(i) = p(i)||θ||,其中p(i)就是对应第i个样本在向量θ上的投影

优化目标函数要做的是,找到一套参数θ,并使它的范数足够小,也就是说他的目标就是要保持θ向量最短

如果按如下的绿线,显然每个样本都靠绿线很近,那么就意味着p(i)的值比较小,那么相应的θ的范数就比较大,并且对于整个样本集中,整体的θ的范式是偏大的

在这里插入图片描述

而对于右图中,绿色线而言,样本在θ向量上的投影更大,并且随着p(i)的逐渐增大,θ的范数越来越小,符合优化函数的目标
在这里插入图片描述

如下右图中蓝线和绿线之间的是间距,决策曲线要保证正负样品之间最大的间距,实现这个方面就可以进行保持样品在θ向量上有最大的长度的投影
在这里插入图片描述

支持向量机应用

改造支持向量机算法构造复杂的非线性分类器

主要是实现技巧是一种称为**核(Kernel)**的东西

什么是核(Kernel)以及通过标记点和相似性函数来定义新特征

如下例子中,我们需要拟合一个非线性的边界以区分正负样本,一个办法是可以使用复杂多项式特征的集合,如下右图所示的特征变量的集合,于是的得到了一个假设函数h(x)
在这里插入图片描述

如下,以f1…fn进行表示原来式子中的高阶项

高阶的特征项是一种得到更多特征的方式,但是问题是我们可以有很多种特征组合,或许存在比这些高阶多项式的,更好的特征,并且我们不知道这些高阶项是不是我们真正需要的

如下使用特征f1…fn来表示特征,如果我们找到了新的特征,可以将他代进到f1…fn之中,这里就算是对特征的一般化
在这里插入图片描述
这里有一个可以构建新特征的方法,如下,使用相似函数进行处理

相似函数在数学上就被称为核函数,相似度函数可以是不同的,而如下例子中,使用的是高斯核函数

如下例子中,对于特征x1,x2,我们忽略x0,也就是忽略截距,构造新的特征量,如下构造f1,f2,f3(这里只是选择构造三个新的特征,实际上会构造更多)。在如下坐标中选取三个点,如图的l(1),l(2),l(3),这些点称为标记点,使用核函数进行构造,如下f1= similarity(x, l(i)),其表示标记点 l(i)与x之间的相似度

在这里插入图片描述

使用核函数方式表示相似度函数,那么similarity(x, l(i)) = k(x, l(i) )

在这里插入图片描述

在上述例子中,在给定训练集x,我们可以训练新特征f1、f2、f3,这是基于之前的三个标记

会有如下两种情况,当x与l(i)非常相似的相似的情况下,那么高斯核函数的输出就无限接近1,而x与l(i)不是很相似的情况下,那么高斯核函数输出的特征值金无限接近0。如下
在这里插入图片描述
l(i)标记点表示具体的点位,通过l(i)以及高斯核函数表达式来获取f1,其图像如下图所示,在图上的红色叉表示的是标记点的位置,对于的z轴表示的是具体的f1的值

特征f1衡量了x到第一个标记的距离,这个值在0到1之间,具体取决于x距离标记点l1的距离
在这里插入图片描述

σ²的改变对高斯核函数有多大影响

σ²是高斯核函数参数

当σ²变小的时候,高斯核函数的值图像会从左边变到右边的情形,结果是同一个标记点,其值会变大并且,函数整体下降速度会变快
在这里插入图片描述

当σ²变大的时候,效果会相反,如下最右图所示

标记点和核函数如何训练非常复杂的非线性决策距离

通过上述,我们可以得到新的特征,如下,假设特征参数θ0,θ1这些变量的值已知,如下,当样本x点在如下粉色的位置,他非常靠近l(i),并且远离l(2),l(3),那么此时f1≈1,f2≈0,f3≈0,代如假设函数的方程中,就可以得到0.5≥0,根据判定条件可以知道预测输出的是1
在这里插入图片描述

其他情形类似蓝色的点x,其最终值是表达式的值输出是-0.5,其小于0,预测函数最终输出0
在这里插入图片描述
事实上,其中是有一个范围的,如下红色圈的部分,在圈以内的函数值,假设函数的输出值都是1,该红色圈拟合的非线性函数,事实上就是上述例子中所需要的
在这里插入图片描述

核函数补充

怎么选取标记点

上述例子中,在选择标记点的时候,并没有提及如何去选择这些标记点,这里作补充说明,并且实际上我们是需要多个这些标记点而不是我们选的三个

选择训练集中的样本点作为标记点,那么标记点l(i)的位置就对应具体的样本点的位置,如下图

使用这种方法进行标记,说明特征函数基本上是在描述每一个样本的距离
在这里插入图片描述

对于给定的样本x,其中x可以是在训练集,交叉验证集或者是测试集中,并通过核函数得出其对应的新特征的值,并相应的特征集的向量的f向量,并按照惯例,我们还可以添加f0,并设置f0=1
在这里插入图片描述

核函数与支持向量机的应用

在这里插入图片描述
在这里插入图片描述

对于大多数向量机
在这里插入图片描述

对于大多数支持向量机,都会作如下变化,就是θTθ变成θTMθ,其中M是某个矩阵。这其实是另一种略有区别的距离度量方法,我们用一种略有变化的度量来取代θ的模的平方,这意味着我们最小化了一种类似的度量,这是参数θ的缩放版本,并取决于核函数,这个数学细节使得向量机能够更有效率的运行

作这种修改,这可以使他应用更大的训练集,主要是为了计算效率

在这里插入图片描述

核函数中将标记点之类的技术用于逻辑回归算法这样的想法用于定义新的特征变量,但是用于支持向量机的想法并不能很好地推广到其算法诸如逻辑回归上,这会使得他的计算效率非常低

如上述,通过将具体的优化变成θTMθ,这种具体化技术,对这些细节的修改以及支持向量软件的实现细节,使得支持向量机可以和核函数相得益彰,而逻辑回归和核函数则运行得非常缓慢

在支持向量机中的偏差-方差的折中
参数C的选择

其中一个优化的变量选择是C,当参数C(C相当于1/λ,其中λ是正则化参数)比较大的时候,相当于正则项比较小,最终造成低偏差和高方差的问题,结果更加倾向于过拟合,而另外i的情况则相反

高斯参数的σ2的选择

当参数σ2比较大的时候,高斯核函数就会变得非常平缓,这会带来较高的偏差和较低的方差,另外的情况相反

使用SVM

线性内核函数

我们选择不需要任何内核参数,没有内核参数的概念,也叫线性核函数,他只是给你一个标准的线性分类器

事实上。只是使用了θTx ≥0。进行预测θ0+…+θnxn ≥0
在这里插入图片描述

初次以外,内核函数还可以使用高斯内核函数

那么什么时候选择高斯内核函数呢?例如你的特征变量比较少的,但是训练的样本比较多的情况下。可以使用高斯内核函数,对于拟合复杂的非线性决策边界,高斯内核函数可以是一个比较好的选择

在这里插入图片描述
在这里插入图片描述

需要进一步地缩放比例,这将会让SVM能考虑到所有不同的特征变量,而不只是像如下例子中,某一个特征量的影响特别大
在这里插入图片描述
并不是所有你提出来的相似函数都是有效的核函数,高斯核函数以及线性核函数以及你有可能会用到的核函数,这些函数都需要满足一个技术条件,它叫做默塞尔定理,需要满足这个的原因是支持向量机算法或者SVM的实现函数有许多熟练的数值优化技巧,为了有效求解参数θ,在最初的设想里,这些决策都用以将我们的注意力仅仅限制在可以满足默塞尔定理的核函数上,这个定理的作用是确保所有的SVM包能够使用大类的优化方法并从而迅速得到参数θ

逻辑回归和SVM如何选择

  • 如果样本的特征非常大,但是训练集比较小,可以考虑线性核函数以及逻辑回归
  • 如果特征变量的数量n比较小,而m大小适中,那么可以使用高斯核函数
  • 如果n比较小,并且训练集比较大,如果使用高斯核函数,他会运行得非常慢,这个时候需要创造或者添加新的特征,然后使用逻辑回归或者线性内核函数的SVM
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值