[英]Python: In which cases will random forest and SVM classifiers can produce high accuracy?
我正在使用隨機森林和SVM分類器進行分類,我有18322個樣本在9個類別(3667、1060、1267、2103、2174、1495、884、1462、4210)中不平衡。 我使用10倍簡歷,我的訓練數據具有100個特征尺寸。 在我的樣本中,訓練數據在這100個維度上並沒有太大差異,當我使用SVM時,精度大約為40%,但是當我使用RF時,精度可以為92%。 然后,我使數據在這100個特征維度上的差異變得更小,但是,RF的精度也可以達到92%,但SVM的精度卻下降到25%。
我的分類器配置為:
SVM:LinearSVC(penalty =“ l1”,dual = False)
RF:RandomForestClassifier(n_estimators = 50)
所有其他參數均為默認值。 我認為我的RF分類器一定有問題,但我不知道如何檢查。
熟悉這兩個分類器的任何人都可以給我一些提示嗎?
線性SVC試圖通過在歐氏空間中找到合適的超平面來分離您的類。 您的樣本可能無法線性分離,從而導致性能不佳。 另一方面,隨機森林使用幾個(在這種情況下為50個)較簡單的分類器(決策樹),每個分類器都有分段線性決策邊界。 當將它們加在一起時,最終會得到更加復雜的決策功能。
以我的經驗,RF傾向於在默認參數下表現良好,甚至廣泛的參數搜索也只會稍微提高精度。 SVM的行為幾乎完全相反。
您嘗試過其他配置嗎? 如何為SVM進行網格搜索以尋找更好的參數?
由於您已經在使用sklearn
,因此可以使用sklearn.grid_search.GridSearchCV
, 在此更多詳細信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.