2011-04-20 93 views
4

我正在嘗試使用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

由於這是第一個文檔,所有功能都存在。

我使用10作爲類的標籤。

我使用分類svm.Net

我給300權重向量手動分類爲訓練數據和所產生的模式正在所有矢量作爲支撐載體,其能可靠地過度擬合。

我的總功能unique words/row count在特徵向量DB表中)是7610

可能是什麼原因?

由於這個過度合適,我的項目現在處於非常糟糕的狀態。它將每篇文章分類爲一篇積極的文章。

LibSVM二元分類是否對類標籤有任何限制?

我使用0,1而不是-1+1。那是問題嗎?

回答

1

正如指出的那樣,在做其他事情之前,參數搜索可能是一個好主意。

我也會調查可用的不同內核。輸入數據是二進制的這一事實可能會對RBF內核產生問題(或者與其他內核相比,可能會使其使用次優)。不過,我不知道哪個內核可能更適合。嘗試一個線性內核,並四處尋找更多的建議/想法:)

欲瞭解更多信息,也許更好的答案,看看stats.stackexchange.com。

3

你需要做某種類型的參數搜索,此外,如果類是不平衡的分類可能會虛高精度沒有做太多。這guide is good在教基本的,實際的事情,你應該可以讀它

1

我肯定會嘗試使用-1和+1標籤,這是標準的方式來做到這一點。

此外,你有多少數據?由於你在7610維空間工作,你可能有很多支持向量,其中一個不同的向量在每個維度上「支持」超平面。

有了這麼多的功能,你可能想嘗試一些類型的特徵選擇方法,如主成分分析。

+0

找到原因,這是因爲SVM.net沒有檢查trainingdata的有效性。在我的訓練數據中,功能數字未被排序,因此它產生了奇怪的結果。在對特徵數量上的權重向量進行排序然後生成模型之後,事情要好得多...... 74%的準確性。謝謝。 – 2011-04-23 07:12:04

相關問題