我正在使用Weka
GUI進行分類。我是新來的Weka並與選項Weka上的分類精確度
- 使用訓練集
- 提供的測試設置
- 交叉驗證
訓練我的分類算法(如J48)感到困惑,我訓練交叉驗證10倍,準確度很高(97%)。當我測試我的分類 - 準確度下降到大約72%。我感到很困惑。請提供任何提示?這是我做的:
- 我訓練我的模型訓練數據(例如:
train.arff
) - 我在你要保存的模型項目的結果列表中右鍵單擊 選擇保存模型和例如保存爲
j48tree.model
然後
- 我加載測試數據(例如:經由增刊
test.arff
謊稱測試設置按鈕 - 右鍵單擊在結果列表中,我挑選負載模型並選擇j48tree.model
- 我選擇
Re-evaluate model on current test set
是我做的方式錯了嗎?爲什麼精度從97%下降到72%?或者只做10倍的交叉驗證足以訓練和測試分類器?
注意:我的訓練和測試數據集具有相同的屬性和標籤。唯一的區別是,我有更多關於測試集的數據,我認爲這不會成爲問題。
我正在使用此數據集(完整訓練數據集和完整測試數據集):https://web.archive。org/web/20150205070216/http://nsl.cs.unb.ca/NSL-KDD/。是的,你是對的,我在我的數據集中有42個特徵 – Brown
我實際上下載了這個數據集,並用python的scikit-learn模塊中的隨機森林對它進行了分類,性能非常好。有一件事仍然不清楚,爲什麼你的測試集比訓練要大?下載的集合大約有17:83分割。下載後我做了兩套合併,隨機選擇20%作爲測試集。正如我所說的,表現很好。所以我的建議是 - 你需要調整訓練和測試集之間的差距。 – omdv
我利用這個機會,終於在我的gitpage上發佈了一些東西(http://torrinos.github.io/datascience/2016/03/10/WEKA-stackoverflow.html)。代碼在那裏以及細節。祝你好運。 – omdv