confusion-matrix
confusion-matrix copied to clipboard
getMicroFMeasure() gives not the same value as getAccuracy()
I'm wondering about
Thanks for reporting! Good catch - do you have a MWE? Or even better a reference (paper, textbook, or similar) which can be turned in a unit test?
I looked to the code and for a first look, I didn't find something wrong - maybe it is a rounding/java number preciseness issue somewhere, the numbers doesn't have a huge difference. This is my example which goes wrong acc 0.3225806451612903 vs microF 0.367816091954023:
ConfusionMatrix cf = new ConfusionMatrix();
cf.increaseValue("48","48");
cf.increaseValue("45","87");
cf.increaseValue("48","48");
cf.increaseValue("104","104");
cf.increaseValue("42","42");
cf.increaseValue("104","104");
cf.increaseValue("48","34");
cf.increaseValue("45","87");
cf.increaseValue("33","49");
cf.increaseValue("30","56");
cf.increaseValue("52","50");
cf.increaseValue("2","2");
cf.increaseValue("106","48");
cf.increaseValue("59","66");
cf.increaseValue("48","48");
cf.increaseValue("64","63");
cf.increaseValue("48","48");
cf.increaseValue("49","49");
cf.increaseValue("94","76");
cf.increaseValue("13","7");
cf.increaseValue("41","80");
cf.increaseValue("30","30");
cf.increaseValue("34","34");
cf.increaseValue("104","49");
cf.increaseValue("30","7");
cf.increaseValue("44","44");
cf.increaseValue("56","49");
cf.increaseValue("94","44");
cf.increaseValue("44","48");
cf.increaseValue("58","59");
cf.increaseValue("116","44");
cf.increaseValue("55","7");
cf.increaseValue("72","51");
cf.increaseValue("49","49");
cf.increaseValue("34","76");
cf.increaseValue("43","87");
cf.increaseValue("104","104");
cf.increaseValue("47","48");
cf.increaseValue("42","42");
cf.increaseValue("52","71");
cf.increaseValue("104","104");
cf.increaseValue("48","48");
cf.increaseValue("104","44");
cf.increaseValue("47","49");
cf.increaseValue("4","19");
cf.increaseValue("95","104");
cf.increaseValue("104","104");
cf.increaseValue("111","56");
cf.increaseValue("41","14");
cf.increaseValue("64","14");
cf.increaseValue("31","8");
cf.increaseValue("48","48");
cf.increaseValue("94","44");
cf.increaseValue("2","7");
cf.increaseValue("46","104");
cf.increaseValue("50","52");
cf.increaseValue("11","60");
cf.increaseValue("4","60");
cf.increaseValue("45","48");
cf.increaseValue("30","104");
cf.increaseValue("92","42");
cf.increaseValue("17","71");
cf.increaseValue("49","48");
cf.increaseValue("48","34");
cf.increaseValue("56","30");
cf.increaseValue("47","49");
cf.increaseValue("11","56");
cf.increaseValue("48","48");
cf.increaseValue("47","104");
cf.increaseValue("48","48");
cf.increaseValue("13","26");
cf.increaseValue("104","49");
cf.increaseValue("44","34");
cf.increaseValue("47","87");
cf.increaseValue("45","87");
cf.increaseValue("31","35");
cf.increaseValue("62","62");
cf.increaseValue("34","104");
cf.increaseValue("17","71");
cf.increaseValue("82","56");
cf.increaseValue("104","49");
cf.increaseValue("104","49");
cf.increaseValue("44","44");
cf.increaseValue("104","104");
cf.increaseValue("30","63");
cf.increaseValue("34","34");
cf.increaseValue("30","7");
cf.increaseValue("4","19");
cf.increaseValue("48","48");
cf.increaseValue("35","34");
cf.increaseValue("48","48");
cf.increaseValue("74","87");
cf.increaseValue("47","49");
cf.increaseValue("22","22");
cf.increaseValue("48","48");
cf.increaseValue("48","87");
cf.increaseValue("48","48");
cf.increaseValue("47","49");
cf.increaseValue("11","10");
cf.increaseValue("4","4");
cf.increaseValue("49","48");
cf.increaseValue("100","87");
cf.increaseValue("45","48");
cf.increaseValue("49","44");
cf.increaseValue("34","76");
cf.increaseValue("94","43");
cf.increaseValue("95","87");
cf.increaseValue("41","76");
cf.increaseValue("34","76");
cf.increaseValue("45","51");
cf.increaseValue("5","10");
cf.increaseValue("13","14");
cf.increaseValue("49","49");
cf.increaseValue("36","37");
cf.increaseValue("49","49");
cf.increaseValue("34","34");
cf.increaseValue("47","49");
cf.increaseValue("41","7");
cf.increaseValue("54","48");
cf.increaseValue("48","48");
cf.increaseValue("30","30");
cf.increaseValue("68","42");
cf.increaseValue("34","48");
cf.increaseValue("56","30");
cf.increaseValue("49","48");
cf.increaseValue("61","61");
cf.increaseValue("100","48");
cf.increaseValue("47","49");
cf.increaseValue("44","49");
cf.increaseValue("11","10");
cf.increaseValue("106","49");
cf.increaseValue("49","49");
cf.increaseValue("49","49");
cf.increaseValue("34","34");
cf.increaseValue("104","104");
cf.increaseValue("71","15");
cf.increaseValue("47","49");
cf.increaseValue("4","19");
cf.increaseValue("41","44");
cf.increaseValue("33","44");
cf.increaseValue("29","76");
cf.increaseValue("18","56");
cf.increaseValue("104","49");
cf.increaseValue("48","48");
cf.increaseValue("55","19");
cf.increaseValue("50","50");
cf.increaseValue("33","49");
cf.increaseValue("48","48");
cf.increaseValue("47","49");
cf.increaseValue("104","48");
cf.increaseValue("104","104");
cf.increaseValue("25","32");
cf.increaseValue("76","7");
cf.increaseValue("48","48");
cf.increaseValue("12","7");
cf.increaseValue("49","49");
cf.increaseValue("12","7");
cf.increaseValue("41","19");
cf.increaseValue("48","48");
cf.increaseValue("45","87");
cf.increaseValue("104","104");
cf.increaseValue("48","76");
cf.increaseValue("48","48");
cf.increaseValue("45","87");
cf.increaseValue("106","49");
cf.increaseValue("11","62");
cf.increaseValue("48","48");
cf.increaseValue("48","48");
cf.increaseValue("13","14");
cf.increaseValue("115","104");
cf.increaseValue("4","60");
cf.increaseValue("20","87");
cf.increaseValue("39","40");
cf.increaseValue("104","104");
cf.increaseValue("48","87");
cf.increaseValue("64","62");
cf.increaseValue("48","48");
cf.increaseValue("71","7");
cf.increaseValue("93","44");
cf.increaseValue("59","66");
cf.increaseValue("104","104");
cf.increaseValue("104","44");
cf.increaseValue("117","89");
cf.increaseValue("48","48");
cf.increaseValue("41","89");
cf.increaseValue("13","14");
cf.increaseValue("5","10");
cf.increaseValue("48","48");
cf.increaseValue("48","87");
cf.increaseValue("47","48");
cf.increaseValue("48","48");
cf.increaseValue("41","56");
cf.increaseValue("104","104");
cf.increaseValue("104","49");
cf.increaseValue("94","44");
cf.increaseValue("41","87");
cf.increaseValue("48","48");
cf.increaseValue("41","56");
cf.increaseValue("30","30");
cf.increaseValue("54","25");
cf.increaseValue("49","104");
cf.increaseValue("71","71");
cf.increaseValue("71","72");
cf.increaseValue("48","87");
cf.increaseValue("39","40");
cf.increaseValue("7","7");
cf.increaseValue("48","48");
cf.increaseValue("48","87");
cf.increaseValue("47","49");
cf.increaseValue("31","65");
cf.increaseValue("47","104");
cf.increaseValue("72","19");
cf.increaseValue("82","76");
cf.increaseValue("70","72");
cf.increaseValue("45","87");
cf.increaseValue("49","48");
cf.increaseValue("31","3");
cf.increaseValue("71","112");
cf.increaseValue("48","48");
cf.increaseValue("115","104");
cf.increaseValue("41","19");
cf.increaseValue("49","49");
cf.increaseValue("48","48");
cf.increaseValue("48","48");
cf.increaseValue("49","49");
cf.increaseValue("49","49");
cf.increaseValue("4","30");
cf.increaseValue("57","57");
cf.increaseValue("62","62");
cf.increaseValue("104","104");
cf.increaseValue("67","68");
cf.increaseValue("13","26");
cf.increaseValue("48","48");
cf.increaseValue("104","87");
cf.increaseValue("69","69");
cf.increaseValue("104","104");
cf.increaseValue("11","22");
cf.increaseValue("52","50");
cf.increaseValue("104","104");
cf.increaseValue("72","62");
cf.increaseValue("4","4");
cf.increaseValue("43","10");
cf.increaseValue("35","34");
cf.increaseValue("34","34");
cf.increaseValue("33","44");
cf.increaseValue("68","68");
cf.increaseValue("74","87");
cf.increaseValue("18","19");
System.out.println("acc " + cf.getAccuracy());
System.out.println("microF " + cf.getMicroFMeasure());
Sorry for just pasting it