回答思路
支持向量分类方法可以推广到解决回归问题。这种方法称为支持向量回归,即support vector regression(SVR)
svr的优化目标是l2 regularization+ c*epsilon-sensitive error.前者正则化是为了控制模型复杂度不必多说,后者epsilon-sensitive error是理解svr的关键,但其实对照linear regression的损失函数也很容易,就如下图
传统的回归方法当且仅当回归f(x)完全等于y时才认为是预测正确,需计算其损失;
而支持向量回归(SVR)则认为只要是f(x)与y偏离程度不要太大,既可认为预测正确,不用计算损失。
具体的就是设置一个阈值α,只是计算|f(x) - y| >α 的数据点的loss。如图,支持向量回归表示只要在虚线内部的值都可认为是预测正确,只要计算虚线外部的值的损失即可。
代码示例
使用方法与与分类一样 fit方法将把向量X,y作为参数向量,只是在这种情况下,只在y是浮点数而不是整数型>>> from sklearn import svm >>> X = [[0, 0], [2, 2]] >>> y = [0.5, 2.5] >>> regr = svm.SVR() >>> regr.fit(X, y) SVR() >>> regr.predict([[1, 1]]) array([1.5])