8

我手裏有一個分類問題,我想用一個機器學習算法來解決(貝葉斯或馬爾科夫可能,這個問題是獨立於要使用的分類器) 。考慮到許多培訓實例,我正在尋找一種方法來衡量實施的分類器的性能,並將數據過度擬合問題考慮在內。即:給定N [1..100]個訓練樣本,如果我對每一個樣本運行訓練算法,並且使用這些非常相同的樣本來測量適應度,它可能陷入數據過擬合問題 - 分類器將知道訓練實例的確切答案,而沒有太多的預測能力,使得健身結果無用。測量分類算法的性能

一個明顯的解決方案是將手標記樣本分成訓練和測試樣本;我想了解一些選擇統計有效樣本進行培訓的方法。

白皮書,書籍指針和PDF非常感謝!

回答

14

您可以使用10-fold Cross-validation。我相信這是非常標準的分類算法性能評估方法。

其基本思想是將你的學習樣本分成10個子集。然後使用一個子集用於測試數據,其他用於列車數據。對每個子集重複此操作,並在最後計算平均性能。

+3

http://en.wikipedia.org/wiki/Root-mean-square_error_of_cross-validation#K-fold_cross-validation (直接鏈接到您鏈接的wiki文章中的k-fold交叉驗證) – JoeCool 2009-06-12 13:33:42

2

正如布朗斯通先生所說,10倍交叉驗證可能是最好的選擇。我最近不得不評估一些不同分類器的性能,因爲我使用了Weka。其中有一個API和一系列工具,可以讓您輕鬆測試大量不同分類器的性能。