『壹』 SVM演算法的優缺點是什麼
svm演算法的有點是適合小樣本數據,並且受雜訊的影響較小,缺點是主要支持二分類
『貳』 簡述svm演算法的原理
svm演算法是在數據中找出最優間隔平面,如果數據線性不可分,那麼可以使用核函數
『叄』 svr演算法和svm演算法哪個好
1、支持向量機( SVM )是一種比較好的實現了結構風險最小化思想的方法。它的機器學習策略是結構風險最小化原則
為了最小化期望風險,應同時最小化經驗風險和置信范圍)
支持向量機方法的基本思想:
( 1
)它是專門針對有限樣本情況的學習機器,實現的是結構風險最小化:在對給定的數據逼近的精度與逼近函數的復雜性之間尋求折衷,以期獲得最好的推廣能力;
( 2
)它最終解決的是一個凸二次規劃問題,從理論上說,得到的將是全局最優解,解決了在神經網路方法中無法避免的局部極值問題;
( 3
)它將實際問題通過非線性變換轉換到高維的特徵空間,在高維空間中構造線性決策函數來實現原空間中的非線性決策函數,巧妙地解決了維數問題,並保證了有較好的推廣能力,而且演算法復雜度與樣本維數無關。
目前, SVM
演算法在模式識別、回歸估計、概率密度函數估計等方面都有應用,且演算法在效率與精度上已經超過傳統的學習演算法或與之不相上下。
對於經驗風險R,可以採用不同的損失函數來描述,如e不敏感函數、Quadratic函數、Huber函數、Laplace函數等。
核函數一般有多項式核、高斯徑向基核、指數徑向基核、多隱層感知核、傅立葉級數核、樣條核、 B
樣條核等,雖然一些實驗表明在分類中不同的核函數能夠產生幾乎同樣的結果,但在回歸中,不同的核函數往往對擬合結果有較大的影響
2、支持向量回歸演算法(svr)主要是通過升維後,在高維空間中構造線性決策函數來實現線性回歸,用e不敏感函數時,其基礎主要是 e
不敏感函數和核函數演算法。
若將擬合的數學模型表達多維空間的某一曲線,則根據e 不敏感函數所得的結果,就是包括該曲線和訓練點的「
e管道」。在所有樣本點中,只有分布在「管壁」上的那一部分樣本點決定管道的位置。這一部分訓練樣本稱為「支持向量」。為適應訓練樣本集的非線性,傳統的擬合方法通常是在線性方程後面加高階項。此法誠然有效,但由此增加的可調參數未免增加了過擬合的風險。支持向量回歸演算法採用核函數解決這一矛盾。用核函數代替線性方程中的線性項可以使原來的線性演算法「非線性化」,即能做非線性回歸。與此同時,引進核函數達到了「升維」的目的,而增加的可調參數是過擬合依然能控制。
『肆』 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 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演算法分類效果更好嗎
數據倉庫,資料庫或者其它信息庫中隱藏著許多可以為商業、科研等活動的決策提供所需要的知識。分類與預測是兩種數據分析形式,它們可以用來抽取能夠描述重要數據集合或預測未來數據趨勢的模型。分類方法(Classification)用於預測數據對象的離散類別(Categorical Label);預測方法(Prediction )用於預測數據對象的連續取值。
分類技術在很多領域都有應用,例如可以通過客戶分類構造一個分類模型來對銀行貸款進行風險評估;當前的市場營銷中很重要的一個特點是強調客戶細分。客戶類別分析的功能也在於此,採用數據挖掘中的分類技術,可以將客戶分成不同的類別,比如呼叫中心設計時可以分為:呼叫頻繁的客戶、偶然大量呼叫的客戶、穩定呼叫的客戶、其他,幫助呼叫中心尋找出這些不同種類客戶之間的特徵,這樣的分類模型可以讓用戶了解不同行為類別客戶的分布特徵;其他分類應用如文獻檢索和搜索引擎中的自動文本分類技術;安全領域有基於分類技術的入侵檢測等等。機器學習、專家系統、統計學和神經網路等領域的研究人員已經提出了許多具體的分類預測方法。下面對分類流程作個簡要描述:
訓練:訓練集——>特徵選取——>訓練——>分類器
分類:新樣本——>特徵選取——>分類——>判決
最初的數據挖掘分類應用大多都是在這些方法及基於內存基礎上所構造的演算法。目前數據挖掘方法都要求具有基於外存以處理大規模數據集合能力且具有可擴展能力。下面對幾種主要的分類方法做個簡要介紹:
(1)決策樹
決策樹歸納是經典的分類演算法。它採用自頂向下遞歸的各個擊破方式構造決策樹。樹的每一個結點上使用信息增益度量選擇測試屬性。可以從生成的決策樹中提取規則。
(2) KNN法(K-Nearest Neighbor)
KNN法即K最近鄰法,最初由Cover和Hart於1968年提出的,是一個理論上比較成熟的方法。該方法的思路非常簡單直觀:如果一個樣本在特徵空間中的k個最相似(即特徵空間中最鄰近)的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別。該方法在定類決策上只依據最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。
KNN方法雖然從原理上也依賴於極限定理,但在類別決策時,只與極少量的相鄰樣本有關。因此,採用這種方法可以較好地避免樣本的不平衡問題。另外,由於KNN方法主要靠周圍有限的鄰近的樣本,而不是靠判別類域的方法來確定所屬類別的,因此對於類域的交叉或重疊較多的待分樣本集來說,KNN方法較其他方法更為適合。
該方法的不足之處是計算量較大,因為對每一個待分類的文本都要計算它到全體已知樣本的距離,才能求得它的K個最近鄰點。目前常用的解決方法是事先對已知樣本點進行剪輯,事先去除對分類作用不大的樣本。另外還有一種Reverse KNN法,能降低KNN演算法的計算復雜度,提高分類的效率。
該演算法比較適用於樣本容量比較大的類域的自動分類,而那些樣本容量較小的類域採用這種演算法比較容易產生誤分。
(3) SVM法SVM法即支持向量機(Support Vector Machine)法,由Vapnik等人於1995年提出,具有相對優良的性能指標。該方法是建立在統計學習理論基礎上的機器學習方法。通過學習演算法,SVM可以自動尋找出那些對分類有較好區分能力的支持向量,由此構造出的分類器可以最大化類與類的間隔,因而有較好的適應能力和較高的分准率。該方法只需要由各類域的邊界樣本的類別來決定最後的分類結果。
支持向量機演算法的目的在於尋找一個超平面H(d),該超平面可以將訓練集中的數據分開,且與類域邊界的沿垂直於該超平面方向的距離最大,故SVM法亦被稱為最大邊緣(maximum margin)演算法。待分樣本集中的大部分樣本不是支持向量,移去或者減少這些樣本對分類結果沒有影響,SVM法對小樣本情況下的自動分類有著較好的分類結果。
(4) VSM法VSM法即向量空間模型(Vector Space Model)法,由Salton等人於60年代末提出。這是最早也是最出名的信息檢索方面的數學模型。其基本思想是將文檔表示為加權的特徵向量:D=D(T1,W1;T2,W2;…;Tn,Wn),然後通過計算文本相似度的方法來確定待分樣本的類別。當文本被表示為空間向量模型的時候,文本的相似度就可以藉助特徵向量之間的內積來表示。
在實際應用中,VSM法一般事先依據語料庫中的訓練樣本和分類體系建立類別向量空間。當需要對一篇待分樣本進行分類的時候,只需要計算待分樣本和每一個類別向量的相似度即內積,然後選取相似度最大的類別作為該待分樣本所對應的類別。
由於VSM法中需要事先計算類別的空間向量,而該空間向量的建立又很大程度的依賴於該類別向量中所包含的特徵項。根據研究發現,類別中所包含的非零特徵項越多,其包含的每個特徵項對於類別的表達能力越弱。因此,VSM法相對其他分類方法而言,更適合於專業文獻的分類。
(5) Bayes法
Bayes法是一種在已知先驗概率與類條件概率的情況下的模式分類方法,待分樣本的分類結果取決於各類域中樣本的全體。
設訓練樣本集分為M類,記為C={c1,…,ci,…cM},每類的先驗概率為P(ci),i=1,2,…,M。當樣本集非常大時,可以認為P(ci)=ci類樣本數/總樣本數。對於一個待分樣本X,其歸於cj類的類條件概率是P(X/ci),則根據Bayes定理,可得到cj類的後驗概率P(ci/X):
P(ci/x)=P(x/ci)·P(ci)/P(x)(1)
若P(ci/X)=MaxjP(cj/X),i=1,2,…,M,j=1,2,…,M,則有x∈ci(2)
式(2)是最大後驗概率判決准則,將式(1)代入式(2),則有:
若P(x/ci)P(ci)=Maxj〔P(x/cj)P(cj)〕,i=1,2,…,M,j=1,2,…,M,則x∈ci
這就是常用到的Bayes分類判決准則。經過長期的研究,Bayes分類方法在理論上論證得比較充分,在應用上也是非常廣泛的。
Bayes方法的薄弱環節在於實際情況下,類別總體的概率分布和各類樣本的概率分布函數(或密度函數)常常是不知道的。為了獲得它們,就要求樣本足夠大。另外,Bayes法要求表達文本的主題詞相互獨立,這樣的條件在實際文本中一般很難滿足,因此該方法往往在效果上難以達到理論上的最大值。
神經網路分類演算法的重點是構造閾值邏輯單元,一個值邏輯單元是一個對象,它可以輸入一組加權系數的量,對它們進行求和,如果這個和達到或者超過了某個閾值,輸出一個量。如有輸入值X1, X2, , Xn 和它們的權系數:W1, W2, , Wn,求和計算出的 Xi*Wi ,產生了激發層 a = (X1 * W1)+(X2 * W2)++(Xi * Wi)++ (Xn * Wn),其中Xi 是各條記錄出現頻率或其他參數,Wi是實時特徵評估模型中得到的權系數。神經網路是基於經驗風險最小化原則的學習演算法,有一些固有的缺陷,比如層數和神經元個數難以確定,容易陷入局部極小,還有過學習現象,這些本身的缺陷在SVM演算法中可以得到很好的解決。
『柒』 SVM演算法,包括演算法原理、演算法實現、核函數參數的選取、優化、系數調整,能通俗地說明下嗎謝謝
SVM 原理,在一個超空間找一個 切分的超平面,
SVM 演算法實現,主要是解決SVM公式對偶問題,常用的是SMO,
SVM 核參數,隱含的將特徵映射到高維空間,有興趣可學習 learn with kernel.
SVM 參數調整分兩部分,1 參數調整,用上述SMO演算法,2 模型選擇。
太累,不想寫太多
『捌』 有沒有用c或c++實現svm演算法
林智仁 的libsvm 就是C實現的SVM演算法代碼,回答不能帶鏈接,你去搜一下libsvm就能找到了.你可以找到他的主頁,上面還會有演算法的具體介紹,和libsvm的使用. 這個估計是使用最廣泛的求解svm的工具包. 裡面的代碼都是可以看的.
理論的話,july寫的一篇文章很經典, 搜索 支持向量機通俗導論(理解SVM的三層境界) 就能找到.
另外看樓主是想學習人工智慧演算法的, 附加一個學習神經網路的網路, <神經網路之家> nnetinfo ,專講神經網路的,還有相關視頻.
都是本人學習過程了解到的干貨, 望採納.
『玖』 如何改進SVM演算法,最好是自己的改進方法,別引用那些前人改進的演算法
樓主對於這種問題的答案完全可以上SCI了,知道答案的人都在寫論文中,所以我可以給幾個改進方向給你提示一下:
1 SVM是分類器對於它的准確性還有過擬合性都有很成熟的改進,所以採用數學方法來改進感覺很難了,但是它的應用很廣泛 SVMRank貌似就是netflix電影推薦系統的核心演算法,你可以了解下
2 與其他演算法的聯合,boosting是一種集成演算法,你可以考慮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模型。為識別模型用於進行預測的特徵而對支持向量機模型做出事後解釋是在生物科學中具有特殊意義的相對較新的研究領域。
以上內容參考網路-支持向量機