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