【机器学习算法-python实现】svm支持向量机(1)—理论知识介绍
生活随笔
收集整理的這篇文章主要介紹了
【机器学习算法-python实现】svm支持向量机(1)—理论知识介绍
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
(轉(zhuǎn)載請注明出處:http://blog.csdn.net/buptgshengod)
1.背景
? ? ?強(qiáng)烈推薦閱讀(http://www.cnblogs.com/jerrylead/archive/2011/03/13/1982639.html) ? ? ? ? ?支持向量機(jī)SVM(support vector machines)。SVM是一種二值分類器,是近些年比較流行的一種分類算法。 本文,首先要介紹一些基本的知識概念,在下一章將對SVM進(jìn)行簡單地代碼實(shí)現(xiàn)。2.基本概念
(1)線性可分
? ? ? ? ?首先介紹一下什么叫線性可分,引用一張上一節(jié)的圖。線性可分實(shí)際上就是可以用一條直線將兩種不同的點(diǎn)區(qū)分開來。由此我們可以得到線性不可分就是兩種點(diǎn)混合在一起不能區(qū)分。但是線性不可分的點(diǎn)其實(shí)也可以用數(shù)學(xué)方法區(qū)分開來。比如說一個(gè)四維的數(shù)據(jù)集我們可以用一個(gè)三維的對象將其分開,這個(gè)對象叫做超平面。下圖的超平面就是那條藍(lán)線。(2)支持向量
? ? ? ?支持向量,現(xiàn)在我們知道了超平面的概念,支持向量其實(shí)就是距離超平面在最近的向量。以上圖為例,就是距離藍(lán)線最近的那些點(diǎn)。方法就是點(diǎn)到線的距離判定。一旦我們找到了這些支持向量,那么我們就可以放大這些向量,只考慮這些對象,用到的是序列最小優(yōu)化的思想。(3)拉格朗日乘子法
? ? ? ?對于支持向量的求法,我們需要一定的約束條件。比如說我們設(shè)點(diǎn)到超平面的距離是d,我們要求取d>1的點(diǎn)作為約束條件。因?yàn)槿绻麤]有這個(gè)約束條件會使得計(jì)算出現(xiàn)誤差。 這個(gè)公式是我們?nèi)c(diǎn)到超平面距離最小的點(diǎn)的集合,且滿足。在存在約束條件情況下求極值的問題,我們用到拉格朗日乘子法(參見百度百科)。
(4)變型
? ?參照拉格朗日公式F(x1,x2,...λ)=f(x1,x2,...)-λg(x1,x2...)。我們把上面的式子變型為?約束條件就變成了
上式的參數(shù)c使松弛變量,因?yàn)槲覀兛吹綀D中一些紅點(diǎn)被分到了綠點(diǎn)的范圍里,為了考慮到這種問題,引入一個(gè)變量來控制。svm的主要任務(wù)是計(jì)算參數(shù)C。 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
以上是生活随笔為你收集整理的【机器学习算法-python实现】svm支持向量机(1)—理论知识介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA HashMap单key多va
- 下一篇: websocket python爬虫_p