@Test public void testGenerateOutcomeIdPropertiesSingleLabel() throws ClassNotFoundException, IOException { List<String> labels = WekaUtils.getClassLabels(singleLabelData, false); Properties props = WekaOutcomeIDUsingTCEvaluationReport.generateProperties( singleLabelData, false, false, labels, null); String header = WekaOutcomeIDUsingTCEvaluationReport.generateHeader(labels); List<String> labelsFromProps = Id2Outcome.getLabels(header); assertTrue(header.split("\n")[1].startsWith("labels")); assertEquals(labels, labelsFromProps); assertEquals(16, props.size()); assertEquals(0, Id2Outcome.classNamesToMapping(labelsFromProps).get("alt.atheism").intValue()); assertEquals( 3, Id2Outcome.classNamesToMapping(labelsFromProps).get("comp.sys.ibm.pc.hardware").intValue()); assertEquals( 2, Id2Outcome.classNamesToMapping(labelsFromProps).get("comp.os.ms-windows.misc").intValue()); assertEquals(Arrays.asList(1.), getPrediction(props.getProperty("alt.atheism/53261.txt"))); assertEquals(Arrays.asList(0), getGoldStandard(props.getProperty("alt.atheism/53261.txt"))); assertEquals( Arrays.asList(1.), getPrediction(props.getProperty("comp.sys.ibm.pc.hardware/60738.txt"))); assertEquals( Arrays.asList(3), getGoldStandard(props.getProperty("comp.sys.ibm.pc.hardware/60738.txt"))); assertEquals( Arrays.asList(2.), getPrediction(props.getProperty("comp.os.ms-windows.misc/10006.txt"))); assertEquals( Arrays.asList(2), getGoldStandard(props.getProperty("comp.os.ms-windows.misc/10006.txt"))); }
@Test public void testGenerateOutcomeIdPropertiesMultiLabel() throws ClassNotFoundException, IOException { List<String> labels = WekaUtils.getClassLabels(multiLabelData, true); Properties props = WekaOutcomeIDUsingTCEvaluationReport.generateProperties( multiLabelData, true, false, labels, mlResults); String header = WekaOutcomeIDUsingTCEvaluationReport.generateHeader(labels); List<String> labelsFromProps = Id2Outcome.getLabels(header); assertTrue(header.split("\n")[1].startsWith("labels")); assertEquals(labels, labelsFromProps); assertEquals(8, props.size()); assertEquals(0, Id2Outcome.classNamesToMapping(labelsFromProps).get("__oat_Comp").intValue()); assertEquals(2, Id2Outcome.classNamesToMapping(labelsFromProps).get("__crude_Comp").intValue()); assertEquals(4, Id2Outcome.classNamesToMapping(labelsFromProps).get("__acq_Comp").intValue()); assertEquals(1., getPrediction(props.getProperty("138.txt")).get(1), 0.1); assertEquals(Arrays.asList(0, 1, 0, 1, 0), getGoldStandard(props.getProperty("138.txt"))); assertEquals(0., getPrediction(props.getProperty("151.txt")).get(0), 0.1); assertEquals(Arrays.asList(0, 0, 1, 0, 0), getGoldStandard(props.getProperty("151.txt"))); assertEquals(0., getPrediction(props.getProperty("212.txt")).get(4), 0.1); assertEquals(Arrays.asList(0, 0, 0, 0, 1), getGoldStandard(props.getProperty("212.txt"))); }
@Before public void initialize() throws IOException { File singleLabelFile; File multiLabelFile; File regressionFile; try { singleLabelFile = new File(this.getClass().getResource("/predictions/singleLabelPredictions.arff").toURI()); multiLabelFile = new File(this.getClass().getResource("/predictions/multiLabelPredictions.arff").toURI()); regressionFile = new File(this.getClass().getResource("/predictions/regressionPredictions.arff").toURI()); mlResults = new File(this.getClass().getResource("/predictions/multiLabelEvaluation.bin").toURI()); } catch (URISyntaxException e) { throw new IOException(e); } singleLabelData = WekaUtils.getInstances(singleLabelFile, false); multiLabelData = WekaUtils.getInstances(multiLabelFile, true); regressionData = WekaUtils.getInstances(regressionFile, false); }
@Override public void write( File outputDirectory, FeatureStore featureStore, boolean useDenseInstances, String learningMode, boolean applyWeighting) throws Exception { WekaUtils.instanceListToArffFileMultiLabel( new File( outputDirectory, WekaClassificationAdapter.getInstance() .getFrameworkFilename(AdapterNameEntries.featureVectorsFile)), featureStore, useDenseInstances, applyWeighting); }