2013-07-02 31 views
8

我有一個訓練集,我想用一種分類方法,根據我的訓練set.my文檔類型分類的其他文件都是新聞和類別是體育,政治,經濟等。文字分類方法? SVM和決策樹

我明白樸素貝葉斯和KNN完全,但SVM和決策樹是模糊的,我不知道如果我能自己實現這個方法?或者有使用這種方法的應用程序?

什麼是我可以用這樣的文檔進行分類的最佳方法是什麼?

謝謝!

回答

5

線性支持向量機是用於文本分類問題頂部算法之一(與Logistic迴歸一起)。決策樹在這樣的高維特徵空間中受到嚴重的影響。

Pegasos algorithm是最簡單的線性SVM算法之一,是非常有效的。

編輯:多項樸素貝葉斯也是行之有效的文本數據,雖然不是通常以及線性支持向量機。 kNN可以正常工作,但是它的算法已經很慢了,並且不會在文本問題上超過精度圖表。

+0

那麼KNN和樸素貝葉呢? – zsh

+0

我以爲你說你已經知道如何做到這些。 –

+0

是的,我想知道哪種方法最適合我的問題。我有不到10個預定義的類。 – zsh

2

如果您熟悉Python,可以考慮NLTKscikit-learn。前者專注於NLP,後者則是更全面的機器學習軟件包(但它擁有大量文本處理模塊)。兩者都是開源的,並且在SO上有很好的社區支持。

11
  • 樸素貝葉斯

雖然這是最簡單的算法,一切都被認爲是獨立的,實時文本分類的情況下,這種方法的工作太棒了。我會首先嚐試這個算法。

  • KNN

KNN是羣集,而不是分類。我認爲你誤解了聚類和分類的概念。

  • SVM

SVM具有SVC(分類)和SVR(迴歸)算法,以做類別分類和預測。它有時效果不錯,但從我的經驗來看,它在文本分類方面表現不佳,因爲它對好的標記器(過濾器)有很高的要求。但是數據集的字典總是有骯髒的標記。準確度真的很差。

  • 隨機森林(決策樹)

我從來沒有嘗試文本分類這種方法。因爲我認爲決策樹需要幾個關鍵節點,而很難找到文本分類的「幾個關鍵標記」,而隨機森林對高稀疏維度不利。

FYI

這些都是從我的經驗,但對於你的情況,你有沒有更好的方法來決定使用哪種方法,而是要想盡算法,以適應你的模型。

Apache的Mahout是機器學習算法的絕佳工具。它集成了三個方面的算法:推薦,聚類和分類。你可以試試這個庫。但是你必須學習一些關於Hadoop的基本知識。

對於機器學習,weka是一個集成許多算法的體驗軟件工具包。

+1

-1。支持向量機是文本分類的頂級技術之一,正如大量有關該主題的出版物所證明的那樣。您應該使用** SVC **進行分類,而不是** SVR **。 –

+1

從我使用SVM進行文本分類的經驗來看,準確性總是不好。我認爲這與您使用的文本數據有關。另外,感謝您指出錯誤。 –