confusion-matrix icon indicating copy to clipboard operation
confusion-matrix copied to clipboard

getMicroFMeasure() gives not the same value as getAccuracy()

Open reuschling opened this issue 6 years ago • 2 comments

I'm wondering about

reuschling avatar Nov 23 '18 13:11 reuschling

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?

habernal avatar Nov 23 '18 14:11 habernal

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

reuschling avatar Nov 23 '18 14:11 reuschling