1. 程式人生 > >如何使用支援向量機(Support Vector Machine,SVM)思想解決迴歸問題

如何使用支援向量機(Support Vector Machine,SVM)思想解決迴歸問題

    迴歸問題的本質其實就是找到一根直線也好曲線也好,能夠最佳程度擬合我們的資料點,在這裡,怎樣定義擬合其實就是迴歸演算法的關鍵。比如說我們之前學過的線性迴歸演算法定義擬合的方式,就是讓我們的資料點到我們預測的直線相應的MSE的值最小,而對於SVM演算法的思路來說,對擬合的定義是另外一個定義。

    這個定義是這樣的, 我們要指定一個margin值,可以回憶一下之前用SVM解決分類問題時在決策邊界上下有一個margin值,那麼用SVM解決迴歸問題時同樣也是有一個margin值的,只不過這回歸問題中,我們期望的是在這個margin範圍裡,我們可以包含進的樣本資料點越多越好,如果在margin範圍內的資料點越多,就代表我們的這個範圍能夠比較好的來表達樣本資料點,在這種情況下,我們取中間的直線作為迴歸結果,用它來預測未知點相應的y的值。

    或者說我們使用SVM解決迴歸問題和我們用SVM解決分離問題是一個相反的思路,我們在使用SVM解決分類問題時,希望margin範圍內的值越少越好,在極端情況hard margin時,要求margin範圍內一個點都不能有,但是對於解決迴歸問題來說,恰恰相反,我們希望的是在margin範圍裡,樣本點越多越好。

    在我們具體訓練SVM迴歸問題結果時,我們是對margin範圍進行指定,所以在這裡,我們要引入一個超引數\varepsilon,用\varepsilon來指定上下兩根直線中任意一根直線到中間直線的距離。

    這就是用SVM解決迴歸問題相應的直觀的想法,希望大家已經理解了這個思路。