使用之前需要把LSSVMlabv1_8_R2009b_R2011a解压 并在matlab中添加到路径中
下载链接:http://www.esat.kuleuven.be/sista/lssvmlab/
我使用的是 V1.8版本。
matlab版本我使用的是2019a。
关于SVM具体叙述可以看这篇文章:
这里不具体说LS-SVM原理了,主要介绍MATLAB实现LS-SVM的步骤。
In Support Vector Machines (SVMs), the solution of the classification problem is characterized by a (convex) quadratic programming (QP) problem. In a modified version of SVMs, called Least Squares SVM classifiers (LS-SVMs), a least-squares cost function is proposed so as to obtain a linear set of equations in the dual space.
目录
2. SVM的参数gamma(γ),惩罚因子C,正则化参数Lambda(λ)
一、机器学习中常用的一些名词
1.偏差与方差
偏差(bias):偏差是衡量期望预测值和真实值的偏离程度。即N次预测的平均值(也叫期望值),和实际真实值的差距。所以偏差bias=E(p(x)) - f(x)。
即bias是指一个模型在不同训练集上的平均表现和真实值的差异,用来衡量一个模型的拟合能力,刻画了学习算法本身的拟合能力。
方差(variance):方差用于衡量预测值之间的关系,和真实值无关。即对于给定的一个预测模型,N次预测结果之间的方差,度量了同样大小的训练集的变动所导致的学习性能的变化,刻画了数据扰动所造成的影响。variance= E((p(x) - E(p(x)))^2)。这个公式就是数学里的方差公式,反应的是统计量的离散程度。
也可以这样描述:训练数据在不同迭代阶段的训练模型中,预测值的变化波动情况(或称之为离散情况)。从数学角度看,可以理解为每个预测值与预测均值差的平方和的再求平均数。通常在模型训练中,初始阶段模型复杂度不高,为低方差;随着训练量加大,模型逐步拟合训练数据,复杂度开始变高,此时方差会逐渐变高。
即variance指一个模型在不同训练集上的差异,用来衡量一个模型是否容易过拟合。
一般训练程度越强,偏差越小,方差越大,泛化误差一般在中间有一个最小值,如果偏差较大,方差较小,此时一般称为欠拟合,而偏差较小,方差较大称为过拟合。
1.1 以下面的打靶图为例进行解释:
先搞清楚图中各元素的含义!红色中心代表目标值,每一个蓝点,都代表了一个训练模型的预测数据,即根据不同的训练集训练出一个训练模型,再用这个训练模型作出一次预测结果。
左下角的“打靶图”,假设我们的目标是中心的红点,所有的预测值都偏离了目标位置,这就是偏差;
在右上角的“打靶图”中,预测值围绕着红色中心周围,没有大的偏差,但是整体太分散了,不集中,这就是方差。
- 低偏差,低方差:这是训练的理想模型,此时蓝色点集基本落在靶心范围内,且数据离散程度小,基本在靶心范围内;
- 低偏差,高方差:这是深度学习面临的最大问题,过拟合了。也就是模型太贴合训练数据了,导致其泛化(或通用)能力差,若遇到测试集,则准确度下降的厉害。通过对偏差的定义,不难发现,偏差是一个期望值(平均值),如果一次射击偏左5环,另一次射击偏右5环,最终偏差是0。但是没一枪打中靶心,所以方差是巨大的,这种情况也是需要改进的。
- 高偏差,低方差:这往往是训练的初始阶段。每次射击都很准确的击中同一个位置,故极端的情况方差为0。只不过,这个位置距离靶心相差了十万八千里。对于射击而言,每次都打到同一个点,很可能是因为它打的不是靶心。对于模型而言,往往是因为模型过于简单,才会造成“准”的假象。提高模型的复杂度,往往可以减少高偏差。
- 高偏差,高方差:这是训练最糟糕的情况,准确度差,数据的离散程度也差。
1.2 以stanford课程《机器学习》