2013-11-22 104 views
0

我目前正在測試我的二進制SVM Java實現的培訓階段。 我測試瞭如下圖所示的小數據,但我需要我的支持向量機適用於已知數據集像垃圾郵件/不是垃圾郵件,圖像等構建Svm培訓集的困惑

  1. 我SVM能夠讀取數值,所以我需要也用一些真實的數據測試它。
  2. 後來我想轉到圖像。

要找到一個真正的數據集,我通過不同的搜索回購協議,但所有我能找到的數值+字符,文本等

而且我發現一個spam Archive

  1. 但我該如何處理?
  2. 我想我需要使用tfidf將文本轉換爲數字數據,然後應用我的SVM。
  3. 但是,我如何指示他們爲1/-1類。

通常情況下輸入的格式是正確的?

0 0 1 
3 4 1 
5 9 1 
12 1 1 
8 7 1 
9 8 -1 
6 12 -1 
10 8 -1 
8 5 -1 
14 8 -1 

如何將垃圾郵件歸檔數據轉換爲上述格式?

+0

如果您正在尋找預煮測試數據,LIBSVM小組會提供大量測試數據。 – tmyklebu

+0

謝謝你的回覆tmyklebu:你可以與我分享這些數據集的鏈接。 –

回答

2

這是關於功能的選擇。輸入當然是成對的文件和標籤。但是特徵提取包含在訓練過程中。最直接的方法是二進制表示法,在這種方法中,我們檢查特定單詞是否出現在某些特定文檔中。它也被稱爲術語頻率:特徵向量中的第i個分量是時間詞wi出現在一個文檔中。這裏的矢量是一個包含訓練文檔中所有單詞的已建立的字典。您還可以考慮反向文檔頻率:所有文檔中出現wi的次數除以文檔總數。 僅供參考,有關垃圾郵件支持向量機的一篇研究論文: http://classes.soe.ucsc.edu/cmps290c/Spring12/lect/14/00788645-SVMspam.pdf

+0

每個消息的一個特徵向量。如果我將所有消息轉換爲TFIDF,我將獲得數字值..但我很困惑,如何將label.1設置爲垃圾郵件,-1設置爲非垃圾郵件。那是archicev垃圾郵件的組合而不是垃圾文本數據? –

+1

@Sree,您可以選擇在您的訓練集中出現頻率最高的單詞,比如說1000個文檔頻率項。如果發生的次數少於20次,請不要使用這些字。通常培訓集是〜10^5(文件或電子郵件)。 – lennon310

+0

因此,在爲tfidf做好垃圾郵件準備工作後,我應該將所有數據標記爲1,對於非垃圾郵件標籤爲-1,然後發送給svm ... –