我正在嘗試使用SVM進行新聞文章分類。LibSVM將我所有的訓練向量變成支持向量,爲什麼?
我創建了一個包含(在文檔中發現的唯一的話)的特徵行的表。 我創建了與這些功能映射的權向量。即如果該文章的某個詞是特徵向量表的一部分,則該位置標記爲1
或其他0
。
例如: - 生成的訓練樣本...
1 1:1 2:1 3:1 4:1 5:1 6:1 7:1 8:1 9:1 10: 1 11:1 12:1 13:1 14:1 15:1 16:1 17:1 18:1 19:1 20:1 21:1 22:1 23:1 24:1 25:1 26: 1 27:1 28:1 29:1 30:1
由於這是第一個文檔,所有功能都存在。
我使用1
,0
作爲類的標籤。
我使用分類svm.Net。
我給300
權重向量手動分類爲訓練數據和所產生的模式正在所有矢量作爲支撐載體,其能可靠地過度擬合。
我的總功能(unique words/row count
在特徵向量DB表中)是7610
。
可能是什麼原因?
由於這個過度合適,我的項目現在處於非常糟糕的狀態。它將每篇文章分類爲一篇積極的文章。
LibSVM二元分類是否對類標籤有任何限制?
我使用0
,1
而不是-1
和+1
。那是問題嗎?
找到原因,這是因爲SVM.net沒有檢查trainingdata的有效性。在我的訓練數據中,功能數字未被排序,因此它產生了奇怪的結果。在對特徵數量上的權重向量進行排序然後生成模型之後,事情要好得多...... 74%的準確性。謝謝。 – 2011-04-23 07:12:04