1. 程式人生 > >SVM的兩個參數 C 和 gamma

SVM的兩個參數 C 和 gamma

測試 需要 html libsvm div 無法 泛化 img 重要

https://blog.csdn.net/lujiandong1/article/details/46386201

SVM模型有兩個非常重要的參數C與gamma。其中 C是懲罰系數,即對誤差的寬容度。c越高,說明越不能容忍出現誤差,容易過擬合。C越小,容易欠擬合。C過大或過小,泛化能力變差

gamma是選擇RBF函數作為kernel後,該函數自帶的一個參數。隱含地決定了數據映射到新的特征空間後的分布,gamma越大,支持向量越少,gamma值越小,支持向量越多。支持向量的個數影響訓練與預測的速度。

此外大家註意RBF公式裏面的sigma和gamma的關系如下:

技術分享圖片

這裏面大家需要註意的就是gamma的物理意義,大家提到很多的RBF的幅寬,它會影響每個支持向量對應的高斯的作用範圍,從而影響泛化性能。我的理解:如果gamma設的太大,技術分享圖片會很小,技術分享圖片很小的高斯分布長得又高又瘦, 會造成只會作用於支持向量樣本附近,對於未知樣本分類效果很差,存在訓練準確率可以很高,(如果讓技術分享圖片無窮小,則理論上,高斯核的SVM可以擬合任何非線性數據,但容易過擬合)而測試準確率不高的可能,就是通常說的過訓練;而如果設的過小,則會造成平滑效應太大,無法在訓練集上得到特別高的準確率,也會影響測試集的準確率。

此外,可以明確的兩個結論是: 結論1:樣本數目少於特征維度並不一定會導致過擬合,這可以參考余凱老師的這句評論: “這不是原因啊,呵呵。用RBF kernel, 系統的dimension實際上不超過樣本數,與特征維數沒有一個trivial的關系。” 結論2:RBF核應該可以得到與線性核相近的效果(按照理論,RBF核可以模擬線性核),可能好於線性核,也可能差於,但是,不應該相差太多。 當然,很多問題中,比如維度過高,或者樣本海量的情況下,大家更傾向於用線性核,因為效果相當,但是在速度和模型大小方面,線性核會有更好的表現。 老師木還有一句評論,可以加深初學者對SVM的理解: “須知rbf實際是記憶了若幹樣例,在sv中各維權重重要性等同。線性核學出的權重是feature weighting作用或特征選擇 。”

以上摘錄了:http://blog.sina.com.cn/s/blog_6ae183910101cxbv.html

Grid Search

Grid Search是用在Libsvm中的參數搜索方法。很容易理解:就是在C,gamma組成的二維參數矩陣中,依次實驗每一對參數的效果。

技術分享圖片

使用grid Search雖然比較簡單,而且看起來很na?ve。但是他確實有兩個優點:

    1. 可以得到全局最優
    2. (C,gamma)相互獨立,便於並行化進行

SVM的兩個參數 C 和 gamma