2015-03-13 28 views
0

爲了尋找推文分類問題的算法,我與SVM交叉。從LibSVM開始,我實現了一個使用它的java庫(不是命令行)的系統,這個庫產生了大約50%-60%的線性函數。現在我希望執行模型選擇,縮放,交叉驗證和特徵選擇,以期提高我的準確性。問題是,我找不到LibSVM在Java庫中的這些功能。那麼我有什麼選擇。考慮到我是一名java程序員?如果選項是自己寫的,怎麼樣,以及什麼算法?我是否應該與任何其他機器學習庫或算法一起去?如何使用Java庫在LibSVM中執行模型選擇?

回答

0

SVM中的模型選擇過程可幫助您根據不同的函數參數選擇最佳模型。在LibSVM庫中,使用交叉驗證方法完成模型選擇。它所做的是將您的訓練數據分成多個子集,並且每次使用不同的參數訓練模型,以提高精度。這也消除了over fitting problem

0

我不確定您的模型選擇或縮放是什麼意思。我知道LibSVM確實交叉驗證,但我不知道特徵選擇。我建議使用R而不是java。有不同的特徵選擇方法,也SVM許多軟件包,如:

e1071

+0

謝謝VTT,交叉驗證實際上是模型選擇。我會考慮R,但我想知道我們是否可以在實際生產水平的項目中使用它,並持續流動數據。 – 2015-03-15 06:33:39

0

JSAT有SVM實現(不完全相同的算法通過LIBSVM使用,但解決同樣的問題),以及與其他許多算法一樣,GridSearch和特徵選擇方法。

偏差說明:我是圖書館的作者。

+0

謝謝先生,我會通過JSAT,如果我覺得合適,我會讓你知道。也許你可以給我一些建議,寫我自己的基於ABC或遺傳算法的模型選擇項目。 – 2015-03-15 06:47:23

+0

遺傳算法大多隻在我們沒有好的方法來搜索空間時纔有用。對於運行網格搜索的參數很好,並且隨機搜索很有效,因爲你有太多的參數。 – 2015-03-16 16:23:58