我使用了Weka的ReplaceMissingValues
輸入遺漏值僅適用於測試ARFF數據集而不是爲訓練數據集時有點擔心。下面是命令行:Weka的:ReplaceMissingValues的測試文件
java -classpath weka.jar weka.filters.unsupervised.attribute.ReplaceMissingValues -c last -i "test_file_with_missing_values.arff" -o "test_file_with_filled_missing_values.arff"
從以前的文章(Replace missing values with mean (Weka)),我才知道了Weka的ReplaceMissingValues
只需用相應屬性的平均值替換每個缺失值。這意味着需要爲每個屬性計算平均值。雖然這個平均值的計算對於訓練文件來說是非常好的,但對測試文件來說是不合適的。
這是因爲在典型的測試場景中,我們不應該假設我們知道輸入缺失值的測試屬性的均值。我們只有一個測試記錄具有多個用於分類的屬性,而不是將一組測試記錄存儲在一個測試文件中。因此,我們應該根據使用訓練數據計算出的均值來輸入缺失值。然後上面的命令會變得不正確,因爲我們需要另一個輸入(火車屬性的手段)。
以前有人想過這個嗎?你如何通過使用weka解決這個問題?
謝謝,雖然有幾個問題。這看起來像它可以工作,但我是新的Weka,甚至更多,所以weka在命令行上...我不需要也運行StringToWordVector?我怎樣才能添加第二個過濾器到同一個命令?還有「非法選項-c last」會被該代碼拋出。此外,我沒有使用MultilayerPerceptron,因爲它具有很多功能,但速度太慢,但我知道如何用LibSVM/NaiveBayes取代 – 2013-03-15 19:38:30
然後,我怎麼才能真正讓它給我未知數據的預測類?標籤標有「?」的標籤。我怎樣才能得到並保存它? – 2013-03-15 19:50:54
@JoshWeissbock也許你應該考慮爲此發佈一個單獨的問題。 – Sentry 2013-03-15 20:03:08