1

几周前,我刚开始使用 Weka 对遥感数据进行土地覆盖分类。我不是数据挖掘专家,但直到现在,一切正常。顺便说一句,我正在将 Weka 与 cmd(.bat 文件)一起使用。

现在我有点无奈,也是因为整个网络似乎根本不存在我的问题。我的问题是,预测数据中缺少一个类,但之前在验证过程中被正确分类(至少在少数情况下)。那可能吗?为什么?更详细:

我已经使用weka.filters.supervised.attribute.AddClassification完成了 RandomForest 预测,如http://weka.wikispaces.com/Making+predictions所示. 以前,我使用训练集训练分类器,并使用单独的测试集进行验证(63 个特征,训练:~300.000 个实例,验证:~100.000 个实例)。我有 13 个不同的课程。并非每个类都显示出令人满意的准确度,但 TP 率和精度永远不会为零。从这个过程中产生的 .model 文件被加载到上述预测中。我的“预测集”包含大量数据(Rasterstack 大约有 16 个 Mio。像素,因此在 arff-Conversion 期间被拆分)。与训练集一样,测试集也是该预测集的一部分。但是我得到的分类包含除一个之外的所有类......我完全错了还是结果应该包含每个类 - 至少在验证区域?或者换一种方式问:不应该是 weka.classifiers.trees 的结果(构建模型并使用测试实例进行验证)和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 的东西感到完全困惑,错过了一些明显的错误?

4

0 回答 0