-3

如何選擇/確定給定數據集的分類器?選擇最適合的分類器算法

作爲輸入的訓練數據給出。如何知道哪個分類器是最佳選擇並給出最準確的結果?有沒有貝葉斯分類好於kNN或任何其他分類算法的情況。

+0

你希望得到什麼結果?你希望挖掘的數據是什麼?這將極大地影響你對分類器的選擇。根據我的理解,你有TF-IDF,它基本上提取了你產品描述的重要部分。第二個文件,你說的是什麼意思?它是一串字符串,還是一個數字描述符(即協變和平均值)。 – GameOfThrows

+0

決定哪一個最好的常用方法是全部使用它們,並根據保留測試集測量結果。根據您對分類器的預期用途選擇測量標準(例如,分類中的錯誤是否容易修復?)您可以憑藉經驗獲得可能表現良好的分類器的感覺。如果你有時間,並且最好的意思是「無論如何都是最準確的」,那麼最好的辦法可能是多個不同分類器的集合。 –

+0

有些情況下貝葉斯分類的表現會比K-最近鄰更好,特別是當數據特徵非常稀疏時(即它們不重疊),一個例子就是年齡與你參加的學校,但不要期望它表現更好,其主要優勢在於速度 – GameOfThrows

回答

1

首先,您應該始終使用cross validation.來評估算法爲了將數據分解爲訓練集和驗證集,請使用第一組訓練分類器,然後使用後者來獲得分類器的近似誤差。

也就是說,通常你最終會測試不同的分類器和算法。沒有辦法確定哪種方法會起作用。當然,如果您對數據背後的含義有更深入的瞭解,它會讓事情變得更輕鬆。您可能會將分類分爲不同的階段,或以某種方式修改算法以更好地適應問題。基本上所有的東西都是允許的,例如,如果你的值分散在0-100的範圍內,但大多數都在0-10或90-100範圍內,你可能想要檢查是否有意義做出第一個決定(像一個決策殘塊),你檢查是否0=<x<=50100>=x>50,然後使用兩個不同的分類器。

根本不可能給出任意問題的一般建議。 「最佳」選擇實際上取決於數據的特定性質。

對於某些分類器的內核也是如此。如果您對數據的性質有所瞭解,則可以創建針對您的問題量身定製的自定義內核函數。

您提到的算法以及SVM或adaboost等算法在很多方面有所不同。一些分類器培訓便宜,但花費更多來評估(kNN),而其他分類器培訓昂貴,但評估非常便宜。

就像我說過的,你可能最終會測試很多東西。只要確保您使用交叉驗證來獲得分類器性能的估計值。僅僅看訓練期間的分類錯誤是不夠的。