假设X是一个原始的,带标签的(即带有训练标签)数据集,并Process(X)返回一组Y已经用属性编码并转换为类似Y.arff的weka友好文件的实例.
还假设Process()有一些"泄漏":某些实例Leak = X-Y无法一致编码,需要获得默认分类FOO.训练标签也以泄漏装置而闻名.
我的问题是,在对整个集合执行评估之前Y,如何将一些分类器应用于子集,将Leak实例用默认分类标签折叠后,我如何才能最好地将Leak中的实例引入到weka评估流中X?在代码中:
DataSource LeakSrc = new DataSource("leak.arff");
Instances Leak = LeakSrc.getDataSet();
DataSource Ysrc = new DataSource("Y.arff");
Instances Y = Ysrc.getDataSet();
classfr.buildClassifer(Y)
// YunionLeak = ??
eval.crossValidateModel(classfr, YunionLeak);
Run Code Online (Sandbox Code Playgroud)
也许这是将多个分类器的结果折叠在一起的具体示例?
赏金即将结束,但马克·霍尔(Mark Hall)在另一个论坛(\n http://list.waikato.ac.nz/pipermail/wekalist/2015-November/065348.html)中值得将其视为当前答案:
\n\n您\xe2\x80\x99需要在代码中构建用于交叉验证的分类器。不过,您仍然可以使用评估对象来计算\n修改后的测试折叠的统计信息,因为它计算的统计信息都是\n相加的。Instances.trainCV() 和 Instances.testCV() 可用于创建\n折叠:
\n\n\n\n然后,您可以调用 buildClassifier() 来处理每个训练折叠,将测试折叠修改为您心中的内容,然后在使用评估.evaluateModelOnce() 或评估.evaluateModelOnceAndRecordPrediction() 的同时迭代测试折叠中的实例。 )。如果您需要曲线下的面积摘要指标(因为这些\n需要保留预测),则更高版本\n会很有用。
\n\n\n\n\n