【机器学习算法-python实现】svm支持向量机(3)—核函数
生活随笔
收集整理的這篇文章主要介紹了
【机器学习算法-python实现】svm支持向量机(3)—核函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
(轉載請注明出處:http://blog.csdn.net/buptgshengod)
1.背景知識
? ?前面我們提到的數據集都是線性可分的,這樣我們可以用SMO等方法找到支持向量的集合。然而當我們遇到線性不可分的數據集時候,是不是svm就不起作用了呢?這里用到了一種方法叫做核函數,它將低維度的數據轉換成高緯度的從而實現線性可分。 ? ? ?可能有的人不明白為什么低維度的數據集轉換成高維度的就可以實現線性可分,下面摘抄一個網上的例子解釋一下。看下面這個圖,我們設紅色的區域是一組數據 ,而直線ab除了紅色區域以外是另一組數據。因為直線是一維的,所以我們無法找到一條直線區分這兩組數據。? ? ? ? 單是當我們把這組數據引入二維之后,我們可以得到一組曲線,它在ab直線上部分指向黑色直線部分,ab直線下部指向紅色部分。
? ? ? 我們通過這個例子可以看到核函數的作用,因為svm的結果只跟向量內積有關系,所以我們可以配合核函數實現任意數據集的分類。如果有人問,如果就是有一定的點數使得我們無論增加多少維度都不能實現分類,這就是引用松弛變量的意義,忽略這一部分點,因為它們很有可能是噪聲。
2.代碼部分
? ? ?因為核函數有很多種類,比較常用的就是徑向基核函數(RBF),這個準確率是比較高的。公式:K = exp(K/(-1*kTup[1]**2))
? ??
總結
以上是生活随笔為你收集整理的【机器学习算法-python实现】svm支持向量机(3)—核函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【机器学习算法-python实现】svm
- 下一篇: 【机器学习算法-python实现】Ada