SVM模型進行分類預測時的參數調整技巧


一:如何判斷調參范圍是否合理

正常來說,當我們參數在合理范圍時,模型在訓練集和測試集的准確率都比較高;當模型在訓練集上准確率比較高,而測試集上的准確率比較低時,模型處於過擬合狀態;當模型訓練集和測試集上准確率都比較低,模型處於欠擬合狀態。正常來說測試集上的准確率都會比訓練集要低。

二:如何確定參數的調節方向

當使用線性支持向量機時,我們只需調節正則化參數C的范圍即可。

這里我們以RBF作為核的SVM為例,這時候我們需要調節的參數是正則化參數C核函數參數gamma。為了保證調參的精確度,一般我們都使用網格搜索法來確定參數。

網格搜索法就是給出各個參數的調節范圍調節步長,計算出每個參數的可能取值,然后遍歷所有的組合情況,返回最佳的參數值。
C和gamma的有效范圍是:10-8~108

C表示模型對誤差的懲罰系數,gamma反映了數據映射到高維特征空間后的分布;C越大,模型越容易過擬合;C越小,模型越容易欠擬合。gamma越大,支持向量越多,gamma值越小,支持向量越少。gamma越小,模型的泛化性變好,但過小,模型實際上會退化為線性模型;gamma越大,理論上SVM可以擬合任何非線性數據。
為維持模型在過擬合和欠擬合之間的平衡,往往最佳的參數范圍是C比較大,gamma比較小;或者C比較小,gamma比較大。也就是說當模型欠擬合時,我們需要增大C或者增大gamma,不能同時增加,調節后如果模型過擬合,我們又很難判斷是C過大了,還是gamma過大了;同理,模型欠擬合的時候,我們需要減小C或者減小gamma。

三:設置合理的調參起始點
因為SVM本身是一個非線性模型,調參的時候根據項目的不同,每一次都是從頭開始的。如果想把上一個項目調好的參數套用到下一個項目上,往往沒什么效果。正常情況下,我們都會先設置C和gamma的值在0.1~10之間,然后在根據模型的表現,每次乘以0.1或者10作為一個步長,當確定大致范圍后,再細化搜索區間。

轉自https://www.douban.com/note/636383152/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM