Svm

為什麼擴展功能會降低 SVM 性能?

  • November 27, 2013

我對包含 40 個特徵(所有列都是數字)和一個二進制輸出變量的模型的特徵進行了縮放。

這是這裡的 Kaggle 競賽我已經擴展了功能,假設它會提供更好的性能,但是使用 rbf 內核 SVM,10 倍 CV 的準確度從 0.92 下降到 0.87

這是縮放前後特徵的箱線圖:

在此處輸入圖像描述 在此處輸入圖像描述

我想知道的是為什麼縮放會降低分類器的性能?我還沒有看到任何指向這種結果的討論。

問題是您在這兩種情況下都使用了默認參數值。顯然,在縮放之前,默認值恰好更適合您的數據集(這是巧合)。

使用 SVM 時,參數和發揮關鍵作用,找到最佳價值是您的任務。您的直覺是正確的:當所有特徵都正確縮放時(或至少 99.99% 的時間) ,*最佳性能會更好。*不幸的是,您的設置都沒有最佳參數,導致結果似乎拒絕了您的直覺。

搜索最優值和通常通過網格搜索完成(例如搜索一組組合)。您可以使用交叉驗證來估計 SVM 針對給定參數集的性能。

在偽代碼中,總體思路是這樣的:

for c in {set of possible c values}
   for gamma in {set of possible gamma values}
       perform k-fold cross-validation to find accuracy
   end
end
train svm model on full training set with best c,gamma-pair

你可以在這裡找到一個很好的初學者教程。

引用自:https://stats.stackexchange.com/questions/77876

comments powered by Disqus

相關問答