支持向量回归和传统的回归模型的区别:
就拿最简单的线性回归来讲,通过模型输出的f(x)与真实输出的y值之间的差别来计算损失。而SVR假设模型输出f(x)与真实的y值之间可以容忍有eps大小的偏差,也就意味只要样本的预测值落在f(x)两侧在y轴方向上绝对值只差小于eps的间隔带上就是预测正确的。
我们去用一个f(x)=wtx+b来拟合真实数据,就会遇到欠拟合和过拟合两个问题。
对于线性回归或逻辑回归的损失函数构成的模型,可能会有些权重很大,有些权重很小,导致过拟合(就是过分拟合了训练数据),使得模型的复杂度提高,泛化能力较差(对未知数据的预测能力)。而过拟合的出现则是因为样本太多的特征被包含进来,很多无关的特征,可能只是某个样本具有的也被认为是模型应该拟合的,最终会导致模型的泛化能力下降。
而解决过拟合可以通过下面两种方式来进行
1)人工选择要保留的特征,也就是减少特征的数量
2)正则化,保留所有的特征,减少w的值
像逻辑回归或者是线性回归都会在真实值和预测值差值损失之外再加一个正则化项来作为目标,这里的theta等同于w
回到SVR,SVR在拟合数据时也要考虑提高模型的泛化能力,于是在考虑松弛变量的情况下优化的目标为
根据拉格朗日乘子计算得出
上述的求解过程需要满足KKT条件
仅当样本不落在eps的间隔带之间,样本对应的两个alpha值(一个带帽的一个不带帽的)才能取到非零值。而f(xi)-yi-eps- zita=0 和yi-f(xi)-eps-zita =0不能同时满足,那么对应的两个alpha值也不能同时为0.
在SVR中它所谓的支持向量指的是满足下面条件的样本
那么满足
这个的样本就可以被称为是SVR的支持向量。它们落在eps的间隔带外。对比SVM的支持向量,可以发现SVR的支持向量并没有SVM支持向量的严格限制,仅仅是训练样本的一部分。