當前位置:首頁 » 操作系統 » svm演算法的應用

svm演算法的應用

發布時間: 2022-12-25 19:10:42

『壹』 svm演算法是什麼

SVM(Support Vector Machine)中文名為支持向量機,是常見的一種判別方法。

支持向量機(Support Vector Machine, SVM)是一類按監督學習(supervised learning)方式對數據進行二元分類的廣義線性分類器(generalized linear classifier),其決策邊界是對學習樣本求解的最大邊距超平面(maximum-margin hyperplane)。

數值求解特點:

SVM的求解可以使用二次凸優化問題的數值方法,例如內點法和序列最小優化演算法,在擁有充足學習樣本時也可使用隨機梯度下降。

在二次凸優化問題中,SMO的每步迭代都嚴格地優化了SVM的對偶問題,且迭代會在有限步後收斂於全局極大值。SMO演算法的迭代速度與所選取乘子對KKT條件的偏離程度有關,因此SMO通常採用啟發式方法選取拉格朗日乘子。

在每次迭代時,SGD首先判定約束條件,若該樣本不滿足約束條件,則SGD按學習速率最小化結構風險;若該樣本滿足約束條件,為SVM的支持向量,則SGD根據正則化系數平衡經驗風險和結構風險,即SGD的迭代保持了SVM的稀疏性。

『貳』 SVM幾種核函數的對比分析以及SVM演算法的優缺點

SVM核函數的作用

SVM核函數是用來解決數據線性不可分而提出的,把數據從源空間映射到目標空間(線性可分空間)。

SVM中核函數的種類

1、線性核

優點:

  • 方案首選,奧卡姆剃刀定律

  • 簡單,可以求解較快一個QP問題

  • 可解釋性強:可以輕易知道哪些feature是重要的

  • 限制:只能解決線性可分問題

    2、多項式核

    基本原理:依靠升維使得原本線性不可分的數據線性可分;
    升維的意義:使得原本線性不可分的數據線性可分;

    優點:

  • 可解決非線性問題

  • 可通過主觀設置冪數來實現總結的預判

  • 缺點:

  • 對於大數量級的冪數,不太適用

  • 比較多的參數要選擇

  • 通常只用在已經大概知道一個比較小的冪數的情況

    3、高斯核

    優點:

  • 可以映射到無限維

  • 決策邊界更為多樣

  • 只有一個參數,相比多項式核容易選擇

  • 缺點:

  • 可解釋性差(無限多維的轉換,無法算w)

  • 計算速度比較慢(解一個對偶問題)

  • 容易過擬合(參數選不好時容易overfitting)

  • 4、Sigmoid核

    採用Sigmoid函數作為核函數時,支持向量機實現的就是一種多層感知器神經網路,應用SVM方法,隱含層節點數目(它確定神經網路的結構)、隱含層節點對輸入節點的權值都是在設計(訓練)的過程中自動確定的。而且支持向量機的理論基礎決定了它最終求得的是全局最優值而不是局部最小值,也保證了它對於未知樣本的良好泛化能力而不會出現過學習現象。

    在實戰中更多的是:

  • 特徵維數高選擇線性核

  • 樣本數量可觀、特徵少選擇高斯核(非線性核)

  • 樣本數量非常多選擇線性核(避免造成龐大的計算量)

  • SVM的優缺點

    1、SVM演算法對大規模訓練樣本難以實施

    SVM的空間消耗主要是存儲訓練樣本和核矩陣,由於SVM是藉助二次規劃來求解支持向量,而求解二次規劃將涉及m階矩陣的計算(m為樣本的個數),當m數目很大時該矩陣的存儲和計算將耗費大量的機器內存和運算時間。針對以上問題的主要改進有有J.Platt的SMO演算法、T.Joachims的SVM、C.J.C.Burges等的PCGC、張學工的CSVM以及O.L.Mangasarian等的SOR演算法。如果數據量很大,SVM的訓練時間就會比較長,如垃圾郵件的分類檢測,沒有使用SVM分類器,而是使用了簡單的naive bayes分類器,或者是使用邏輯回歸模型分類。

    2、用SVM解決多分類問題存在困難

    經典的支持向量機演算法只給出了二類分類的演算法,而在數據挖掘的實際應用中,一般要解決多類的分類問題。可以通過多個二類支持向量機的組合來解決。主要有一對多組合模式、一對一組合模式和SVM決策樹;再就是通過構造多個分類器的組合來解決。主要原理是克服SVM固有的缺點,結合其他演算法的優勢,解決多類問題的分類精度。如:與粗集理論結合,形成一種優勢互補的多類問題的組合分類器。

    3、對缺失數據敏感,對參數和核函數的選擇敏感

    支持向量機性能的優劣主要取決於核函數的選取,所以對於一個實際問題而言,如何根據實際的數據模型選擇合適的核函數從而構造SVM演算法。目前比較成熟的核函數及其參數的選擇都是人為的,根據經驗來選取的,帶有一定的隨意性.在不同的問題領域,核函數應當具有不同的形式和參數,所以在選取時候應該將領域知識引入進來,但是目前還沒有好的方法來解決核函數的選取問題。

『叄』 SVM到底是什麼

SVM叫做支持向量機( Support Vector Machines)是由Vanpik領導的AT&TBell實驗室研究小組
在1963年提出的一種新的非常有潛力的分類技術, SVM是一種基於統計學習理論的模式識別方法,主要應用於模式識別領域.由於當時這些研究尚不十分完善,在解決模式識別問題中往往趨於保守,且數學上比較艱澀,因此這些研究一直沒有得到充的重視.直到90年代,一個較完善的理論體系—統計學習理論 ( StatisticalLearningTheory,簡稱SLT) 的實現和由於神經網路等較新興的機器學習方法的研究遇到一些重要的困難,比如如何確定網路結構的問題、過學習與欠學習問題、局部極小點問題等,使得SVM迅速發展和完善,在解決小樣本 、非線性及高維模式識別問題中表現出許多特有的優勢,並能夠推廣應用到函數擬合等其他機器學習問題中.從此迅速的發展起來,現在已經在許多領域(生物信息學,文本和手寫識別等)都取得了成功的應用。
SVM的關鍵在於核函數,這也是最喜人的地方。低維空間向量集通常難於劃分,解決的方法是將它們映射到高維空間。但這個辦法帶來的困難就是計算復雜度的增加,而核函數正好巧妙地解決了這個問題。也就是說,只要選用適當的核函數,我們就可以得到高維空間的分類函數。在SVM理論中,採用不同的核函數將導致不同的SVM演算法

它是一種以統計學理論為基礎的,以結構風險最小化的學習機學習方法,要優於神經網路學習

『肆』 分類演算法 - SVM演算法

SVM的全稱是Support Vector Machine,即支持向量機,主要用於解決模式識別領域中的數據分類問題,屬於有監督學習演算法的一種。SVM要解決的問題可以用一個經典的二分類問題加以描述。如圖1所示,紅色和藍色的二維數據點顯然是可以被一條直線分開的,在模式識別領域稱為線性可分問題。然而將兩類數據點分開的直線顯然不止一條。圖2和3分別給出了A、B兩種不同的分類方案,其中黑色實線為分界線,術語稱為「決策面」。每個決策面對應了一個線性分類器。雖然在目前的數據上看,這兩個分類器的分類結果是一樣的,但如果考慮潛在的其他數據,則兩者的分類性能是有差別的。

之前在b站看到一個非常好的介紹!!十分推薦, 這是傳送門

按照我自己的理解,以二維數據為例,我們喂給模型已經分類好的數據,那麼假設有一線條可以將此部分數據正確劃分為2大部分,這樣可以形成2個等式,即橫線兩邊的數值歸類為1或者-1,一般情況下可以求出最大間隔即無數個解,因此需要一個限定條件求出最優的那條線條。限定方式為:無數個解形成一個解的范圍,距離邊緣相等的那條線條即是最優解。

有時候本來數據的確是可分的,也就是說可以用線性分類SVM的學習方法來求解,但是卻因為混入了異常點,導致不能線性可分,比如下圖,本來數據是可以按下面的實線來做超平面分離的,可以由於一個橙色和一個藍色的異常點導致我們沒法按照線性分類支持向量機方法來分類。

以上討論的都是在線性可分情況進行討論的,但是實際問題中給出的數據並不是都是線性可分的,比如有些數據可能是曲線的。

那麼這種非線性可分的數據是否就不能用SVM演算法來求解呢?答案是否定的。事實上,對於低維平面內不可分的數據,放在一個高維空間中去就有可能變得可分。以二維平面的數據為例,我們可以通過找到一個映射將二維平面的點放到三維平面之中。理論上任意的數據樣本都能夠找到一個合適的映射使得這些在低維空間不能劃分的樣本到高維空間中之後能夠線性可分。

當特徵變數非常多的時候,在高維空間中計算內積的運算量是非常龐大的。考慮到我們的目的並不是為找到這樣一個映射而是為了計算其在高維空間的內積,因此如果我們能夠找到計算高維空間下內積的公式,那麼就能夠避免這樣龐大的計算量,我們的問題也就解決了。實際上這就是我們要找的 核函數 ,即兩個向量在隱式映射後的空間中的內積。

(1)對於邊界清晰的分類問題效果好;
(2)對高維分類問題效果好;
(3)當維度高於樣本數的時候,SVM 較為有效;
(4)因為最終只使用訓練集中的支持向量,所以節約內存

(1)當數據量較大時,訓練時間會較長;
(2)當數據集的噪音過多時,表現不好;
(3)SVM 不直接提供結果的概率估計,它在計算時直接使用 5 倍交叉驗證。

(1)LR 與 SVM 都是分類演算法;
(2)LR 與 SVM 都是監督學習演算法;
(3)LR 與 SVM 都是判別模型;
(4)關於判別模型與生成模型的詳細概念與理解,筆者會在下篇博文給出,這里不詳述。
(5)如果不考慮核函數,LR 與 SVM 都是線性分類演算法,也就是說他們的分類決策面都是線性的

這里需要說明的是,LR 也是可以用核函數的,因在 LR 演算法里,每個樣本點都必須參與決策面的計算過程,也就是說,如果在 LR 里也運用核函數的原理,那麼每個樣本點都必須參與核計算,這帶來的計算復雜度是相當高的。所以在具體應用時,LR 很少運用核函數機制。

(1)損失函數不同;
(2)SVM 只考慮支持向量,而 LR 考慮全局(即遠離的點對邊界線的確定也起作用);
(3)在解決非線性問題時,SVM 採用核函數的機制,而 LR 通常不採用核函數的方法;
(4)SVM 的損失函數就自帶正則(損失函數中的12||w||2項),這就是為什麼 SVM 是結構風險最小化演算法的原因,而 LR 必須另外在損失函數上添加正則項;
(5)LR是參數模型,SVM是非參數模型,本質不同。
(6)在訓練集較小時,SVM 較適用,而 LR 需要較多的樣本。

(1)LR 與線性回歸都是廣義的線性回歸;
(2)線性回歸模型的優化目標函數是最小二乘,而 LR 則是似然函數;
(3)線性回歸在整個實數域范圍內進行預測,敏感度一致,而分類范圍,需要在[0,1]。邏輯回歸就是一種減小預測范圍,將預測值限定為[0,1]間的一種回歸模型,因而對於這類問題來說,邏輯回歸的魯棒性比線性回歸的要好。
(4)邏輯回歸的模型本質上是一個線性回歸模型,邏輯回歸都是以線性回歸為理論支持的。但線性回歸模型無法做到 sigmoid 的非線性形式,sigmoid 可以輕松處理 0/1 分類問題。
(5)線性回歸主要做預測,LR 主要做分類(如二分類);

『伍』 05 SVM - 支持向量機 - 概念、線性可分

04 SVM - 感知器模型

支持向量機(Support Vector Machine, SVM)本身是一個 二元分類演算法 ,是對感知器演算法模型的一種擴展,現在的SVM演算法支持 線性分類 非線性分類 的分類應用,並且也能夠直接將SVM應用於 回歸應用 中,同時通過OvR或者OvO的方式我們也可以將SVM應用在 多元分類 領域中。在不考慮集成學習演算法,不考慮特定的數據集的時候,在分類演算法中SVM可以說是特別優秀的。

在感知器模型中,演算法是在數據中找出一個劃分超平面,讓盡可能多的數據分布在這個平面的兩側,從而達到分類的效果,但是在實際數據中這個符合我們要求的超平面是可能存在多個的。

在感知器模型中,我們可以找到多個可以分類的超平面將數據分開,並且優化時希望所有的點都離超平面盡可能的遠,但是實際上離超平面足夠遠的點基本上都是被正確分類的,所以這個是沒有意義的;反而比較關心那些離超平面很近的點,這些點比較容易分錯。所以說我們只要 讓離超平面比較近的點盡可能的遠離這個超平面 ,那麼我們的模型分類效果應該就會比較不錯。SVM其實就是這個思想。

SVM核心思想: 找到離分割超平面較近的點(預測錯誤可能會高),然後想辦法讓它們離超平面的距離遠。

PS: SVM在若干年前,當數據量還比較少的時候,SVM是最好的分類模型。但是現在隨著數據量的不斷增大,SVM模型運算速度較慢的缺點開始暴露。而且隨著這些年集成學習的不算成熟,現在SVM普遍用於集成學習中基模型的構建。

線性可分(Linearly Separable): 在數據集中,如果可以找出一個超平面,將兩組數據分開,那麼這個數據集叫做線性可分數據。

線性不可分(Linear Inseparable): 在數據集中,沒法找出一個超平面,能夠將兩組數據分開,那麼這個數據集就叫做線性不可分數據。

分割超平面(Separating Hyperplane): 將數據集分割開來的直線/平面叫做分割超平面。

間隔(Margin): 數據點到分割超平面的距離稱為間隔。

支持向量(Support Vector): 離分割超平面最近的那些點叫做支持向量。

回顧: 支持向量到超平面的距離為:

PS:在SVM中支持向量到超平面的函數距離一般設置為1;

SVM模型 是讓所有的分類點在各自類別的支持向量的兩邊,同時要求支持向量盡可能的遠離這個超平面,用 數學公式 表示如下:

1、將此時的目標函數和約束條件 使用KKT條件 轉換為拉格朗日函數,從而轉換為 無約束的優化函數

2、引入拉格朗日乘子後,優化目標變成:

3、根據拉格朗日對偶化特性,將該優化目標轉換為等價的對偶問題來求解,從而優化目標變成:

4、所以對於該優化函數而言,可以先求優化函數對於w和b的極小值,然後再求解對於拉格朗日乘子β的極大值。

5、首先求讓函數L極小化的時候w和b的取值,這個極值可以直接通過對函數L分別求w和b的偏導數得到:

6、將求解出來的w和b帶入優化函數L中,定義優化之後的函數如下:

7、通過對w、b極小化後,我們最終得到的優化函數只和β有關,所以此時我們可以直接極大化我們的優化函數,得到β的值,從而可以最終得到w和b的值;

8、求解w T +b中b的值。

假設存在最優解β*; 根據w、b和β的關系,可以分別計算出對應的w值和b值(使用支持向量對應的樣本點來計算,作為實際的b值, 支持向量求解出的b值是唯一解 );

這里的(xs,ys)即 支持向量 ,根據KKT條件中的對偶互補條件(鬆弛條件約束),支持向量必須滿足以下公式:

06 SVM - 線性可分SVM演算法和案例

『陸』 機器學習演算法中的SVM和聚類演算法

1.機器學習演算法——SVM
這種演算法就是支持向量機,而支持向量機演算法是誕生於統計學習界,這也是機器學習中的經典演算法,而支持向量機演算法從某種意義上來說是邏輯回歸演算法的強化,這就是通過給予邏輯回歸演算法更嚴格的優化條件,支持向量機演算法可以獲得比邏輯回歸更好的分類界線。不過如果通過跟高斯核的結合,支持向量機可以表達出非常復雜的分類界線,從而達成很好的的分類效果。核事實上就是一種特殊的函數,最典型的特徵就是可以將低維的空間映射到高維的空間。
2.機器學習演算法——聚類演算法
前面的演算法中的一個顯著特徵就是訓練數據中包含了標簽,訓練出的模型可以對其他未知數據預測標簽。在下面的演算法中,訓練數據都是不含標簽的,而演算法的目的則是通過訓練,推測出這些數據的標簽。這類演算法有一個統稱,即無監督演算法。無監督演算法中最典型的代表就是聚類演算法。而聚類演算法中最典型的代表就是K-Means演算法。這一演算法被廣大朋友所應用。

想要學習了解更多機器學習的知識,推薦CDA數據分析師課程。「CDA 數據分析師」具體指在互聯網、金融、零售、咨詢、電信、醫療、旅遊等行業專門 從事數據的採集、清洗、處理、分析並能製作業務報告、提供決策的新型數據分析人才,推動科技創新進步,助力經濟持續發展。點擊預約免費試聽課。

『柒』 svm演算法是什麼

SVM演算法中文翻譯為支持向量機,它的英文全稱是Support Vector Machine。

之所以叫作支持向量機,是因為該演算法最終訓練出來的模型,由一些支持向量決定。所謂的支持向量,也就是能夠決定最終模型的向量。SVM演算法最初是用來解決二分類問題的,而在這個基礎上進行擴展,也能夠處理多分類問題以及回歸問題。

SVM演算法的歷史

早在1963 年,著名的前蘇聯統計學家弗拉基米爾·瓦普尼克在讀博士期間,就和他的同事阿列克謝·切爾沃寧基斯共同提出了支持向量機的概念。

但由於當時的國際環境影響,他們用俄文發表的論文,並沒有受到國際學術界的關注。直到 20 世紀 90 年代,瓦普尼克隨著移民潮來到美國,而後又發表了SVM 理論。此後,SVM 演算法才受到應有的重視。如今,SVM 演算法被稱為最好的監督學習演算法之一。

『捌』 svm演算法是什麼

支持向量機(英語:support vector machine,常簡稱為SVM,又名支持向量網路)是在分類與回歸分析中分析數據的監督式學習模型與相關的學習演算法。

SVM使用鉸鏈損失函數(hinge loss)計算經驗風險(empirical risk)並在求解系統中加入了正則化項以優化結構風險(structural risk),是一個具有稀疏性和穩健性的分類器。

SVM可以通過核方法(kernel method)進行非線性分類,是常見的核學習(kernel learning)方法之一 。

SVM被提出於1964年,在二十世紀90年代後得到快速發展並衍生出一系列改進和擴展演算法,在人像識別、文本分類等模式識別(pattern recognition)問題中有得到應用。

動機

H1不能把類別分開。H2可以,但只有很小的間隔。H3以最大間隔將它們分開。

將數據進行分類是機器學習中的一項常見任務。 假設某些給定的數據點各自屬於兩個類之一,而目標是確定新數據點將在哪個類中。對於支持向量機來說,數據點被視為p維向量,而我們想知道是否可以用 (p-1)維超平面來分開這些點。

這就是所謂的線性分類器。可能有許多超平面可以把數據分類。最佳超平面的一個合理選擇是以最大間隔把兩個類分開的超平面。

因此,我們要選擇能夠讓到每邊最近的數據點的距離最大化的超平面。如果存在這樣的超平面,則稱為最大間隔超平面,而其定義的線性分類器被稱為最大間隔分類器,或者叫做最佳穩定性感知器。

應用

1、用於文本和超文本的分類,在歸納和直推方法中都可以顯著減少所需要的有類標的樣本數。

2、用於圖像分類。實驗結果顯示:在經過三到四輪相關反饋之後,比起傳統的查詢優化方案,支持向量機能夠獲取明顯更高的搜索准確度。這同樣也適用於圖像分割系統,比如使用Vapnik所建議的使用特權方法的修改版本SVM的那些圖像分割系統。

3、用於手寫字體識別。

4、用於醫學中分類蛋白質,超過90%的化合物能夠被正確分類。基於支持向量機權重的置換測試已被建議作為一種機制,用於解釋的支持向量機模型。

支持向量機權重也被用來解釋過去的SVM模型。為識別模型用於進行預測的特徵而對支持向量機模型做出事後解釋是在生物科學中具有特殊意義的相對較新的研究領域。

以上內容參考網路-支持向量機

『玖』 邏輯回歸和SVM的區別是什麼各適用於解決什麼問題

兩種方法都是常見的分類演算法,從目標函數來看,區別在於邏輯回歸採用的是logistical loss,svm採用的是hinge loss.這兩個損失函數的目的都是增加對分類影響較大的數據點的權重,減少與分類關系較小的數據點的權重.SVM的處理方法是只考慮support vectors,也就是和分類最相關的少數點,去學習分類器.而邏輯回歸通過非線性映射,大大減小了離分類平面較遠的點的權重,相對提升了與分類最相關的數據點的權重.兩者的根本目的都是一樣的.此外,根據需要,兩個方法都可以增加不同的正則化項,如l1,l2等等.所以在很多實驗中,兩種演算法的結果是很接近的.
但是邏輯回歸相對來說模型更簡單,好理解,實現起來,特別是大規模線性分類時比較方便.而SVM的理解和優化相對來說復雜一些.但是SVM的理論基礎更加牢固,有一套結構化風險最小化的理論基礎,雖然一般使用的人不太會去關注.還有很重要的一點,SVM轉化為對偶問題後,分類只需要計算與少數幾個支持向量的距離,這個在進行復雜核函數計算時優勢很明顯,能夠大大簡化模型和計算
svm 更多的屬於非參數模型,而logistic regression 是參數模型,本質不同.其區別就可以參考參數模型和非參模型的區別就好了.
logic 能做的 svm能做,但可能在准確率上有問題,svm能做的logic有的做不了

『拾』 svm演算法是什麼

SVM(Support Vector Machine)中文名為支持向量機,是常見的一種判別方法。

支持向量機(Support Vector Machine, SVM)是一類按監督學習(supervised learning)方式對數據進行二元分類的廣義線性分類器(generalized linear classifier),其決策邊界是對學習樣本求解的最大邊距超平面(maximum-margin hyperplane)。

數值求解特點:

SVM的求解可以使用二次凸優化問題的數值方法,例如內點法和序列最小優化演算法,在擁有充足學習樣本時也可使用隨機梯度下降。

在二次凸優化問題中,SMO的每步迭代都嚴格地優化了SVM的對偶問題,且迭代會在有限步後收斂於全局極大值。SMO演算法的迭代速度與所選取乘子對KKT條件的偏離程度有關,因此SMO通常採用啟發式方法選取拉格朗日乘子。

在每次迭代時,SGD首先判定約束條件,若該樣本不滿足約束條件,則SGD按學習速率最小化結構風險;若該樣本滿足約束條件,為SVM的支持向量,則SGD根據正則化系數平衡經驗風險和結構風險,即SGD的迭代保持了SVM的稀疏性。

熱點內容
伺服器少個陣列卡盤符怎麼找出來 發布:2025-05-11 02:34:07 瀏覽:635
鬥地主源碼開發 發布:2025-05-11 02:24:07 瀏覽:366
雲伺服器怎麼設置攻擊 發布:2025-05-11 02:22:09 瀏覽:826
python嵌套for循環 發布:2025-05-11 01:51:44 瀏覽:228
安卓怎麼取消後台限制 發布:2025-05-11 01:45:45 瀏覽:258
一鍵搭建sk5伺服器 發布:2025-05-11 01:40:09 瀏覽:514
鴻業acs加密鎖模擬器 發布:2025-05-11 01:38:49 瀏覽:938
神廟逃亡2安卓版怎麼玩 發布:2025-05-11 01:38:05 瀏覽:163
凱傑都什麼配置 發布:2025-05-11 01:38:04 瀏覽:472
php微信開源系統源碼 發布:2025-05-11 01:37:54 瀏覽:814