我正在使用Weka對數據集進行分類。每個數據點都是我想要概括的五個主題之一。Weka分類;跨預定義主題進行交叉驗證
我想使每個主題成爲一個測試集,以便我可以訓練主題1-4並測試主題5,然後在主題1,3,4和5上進行訓練,然後測試2,等等。
有沒有一種方法可以讓Weka自動地用一個數據集預先執行一次?也就是說,我可以指示Weka按主題進行交叉驗證嗎?
如果已經詢問了此問題,我對冗餘表示歉意。如果確實如此,那麼我將非常感謝幫助我指導答案的任何幫助。
謝謝!
我正在使用Weka對數據集進行分類。每個數據點都是我想要概括的五個主題之一。Weka分類;跨預定義主題進行交叉驗證
我想使每個主題成爲一個測試集,以便我可以訓練主題1-4並測試主題5,然後在主題1,3,4和5上進行訓練,然後測試2,等等。
有沒有一種方法可以讓Weka自動地用一個數據集預先執行一次?也就是說,我可以指示Weka按主題進行交叉驗證嗎?
如果已經詢問了此問題,我對冗餘表示歉意。如果確實如此,那麼我將非常感謝幫助我指導答案的任何幫助。
謝謝!
有跡象表明,我能想到的幾個方法可以幫助讓你想要的結果:
當你在你的問題已經列出,您可以生成5個不同的訓練集,其餘主題作爲測試集。如果您打算使用Weka界面(提供訓練數據,構建分類器並提供測試集,重複),則每個模型都需要單獨進行培訓。這可能是最快的,如果它是一次性的。
您可以使用帶有RemoveWithValues過濾器的FilteredClassifier。如果主題編號是可用屬性(我猜這些數據不是模型數據的一部分,但是如果使用這種方法也可能需要屬性過濾),那麼這可能能夠移除特定主題的培訓案例。
如果您願意使用Java編寫解決方案,您將能夠操縱數據並一次構建五個分類器中的每一個。我在想這個模型的算法如下所述。如果你打算進行這個過程很多,這可能是更好的解決方案。
算法:
for each topic t
training_data = all cases not containing topic t
testing_data = training_set cases containing topic t
build classifier using training_data, testing_data
save classifier
end for