Anybody could tell me the correct way of evaluating the performance in a multi-class classification problem with umbalanced or imbalanced class presence ?
For example in this 3 class problem, I am used to have the following performance measures derived from the confusion matrix:
(this example is attached in results.txt, I dont know why the formatting is so ugly)
True | Estimated Labels
Labels | Normal Suprav Ventri| Totals
-----------------|---------------------|-------
Normal |282094 1534 3991 |287619
Supraventricular| 102 854 378 | 1334
Ventricular | 521 1309 742 | 2572
-----------------|---------------------|-------
Totals |282717 3697 5111 |291525
Balanced Results
-----------------
| Normal || Supravent || Ventricul || TOTALS |
| Se +P || Se +P || Se +P || Acc | Se | +P |
| 98% 78% || 64% 55% || 29% 49% || 64% | 64% | 61% |
Unbalanced Results
-------------------
| Normal || Supravent || Ventricul || TOTALS |
| Se +P || Se +P || Se +P || Acc | Se | +P |
| 98% 100% || 64% 23% || 29% 15% || 97% | 64% | 46% |
(this example is attached in results.txt, I dont know why the formatting is so ugly)
As you can see, the presence of the 3 classes is VERY umbalanced (287619, 1334, 2572), and consequently I noticed that the positive predictive value (+P) is biased by this umbalance. Trying to avoid this, I calculated the “balanced” results, which means scaling all rows in the confusion matrix to sum the same (or balance the class presence), and then calculate the performance. As can be noted, the class sensitivity (Se) is not affected by this row-operations. The totals means the average Se and +P of all classes, and Acc is the trace of the confusion matrix divided by the total amount of examples (291525).
Thanks in advance for any comment.
Mariano.

