几周前我刚开始使用Weka进行遥感数据的土地覆盖分类。我不是数据挖掘专家,但直到现在,一切正常。顺便说一下,我正在使用带有cmd(.bat文件)的Weka。
现在我有点无助了,也因为看起来我的问题在整个网络上根本不存在。我的问题是,预测数据中缺少一个类,但之前在验证过程中已经正确分类(至少在少数情况下)。那可能吗?为什么?更具体:
我使用 weka.filters.supervised.attribute.AddClassification 完成了RandomForest预测,因为它显示在http://weka.wikispaces.com/Making+predictions上。以前,我使用训练集训练分类器,并使用单独的测试集进行验证(63个特征,训练:~300,000个实例,验证:~100,000个实例)。我有13个不同的课程。并非每个班级都表现出令人满意的准确度,但TP率和精确度绝不为零。来自此过程的.model文件被加载到上述预测中。我的“预测集”包含大量数据(具有~16 Mio像素的Rasterstack,因此在arff-Conversion期间被分割)。与训练集一样,测试集也是该预测集的一部分。但是我得到的分类包含除了一个以外的所有类...我完全错了或者结果是否包含每个类 - 至少在验证区域?或者不同地问:不应该是 weka.classifiers.trees.RandomForest 的结果(构建模型并使用测试实例进行验证)和 weka.filters.supervised.attribute.AddClassification (加载模型并用相同的实例预测)理论上是相同的吗?
我的培训代码:
java -Xmx6000m -classpath "C:\Program Files\Weka-3-6\weka.jar" weka.classifiers.trees.RandomForest ^
-t xx\trainingset.arff ^
-T xx\testset.arff ^
-d xx\modelfile.model ^
-i ^
> xx\output.txt
我的预测代码:
java -Xmx6000m -classpath "C:\Program Files\Weka-3-6\weka.jar" weka.filters.supervised.attribute.AddClassification ^
-serialized xx\modelfile.model ^
-classification ^
-i xx\arfffile_tile1.arff ^
-remove-old-class ^
-o xx\classified_tile1.arff ^
-c last ^
-distribution
我希望我没有让你感到困惑...关于我的最后一个问题,我正在为测试运行准备数据,我会让你知道它,但这需要一段时间...任何想法或建议是受欢迎的:)也许我也对这整个Weka的东西感到困惑并错过了一些明显的错误?