# How to choose metrics for evaluating classification results?

Recently we have developed a python library named PyCM specialized for analyzing multi-class confusion matrices. A parameter recommender system has been added in version 1.9 of this module in order to recommend most related parameters considering the characteristics of the input dataset and its classification problem. This new option is very challenging and raising many questions. At first, I try to explain the assumptions and describe how this module works in this part. After that, some questions are going to be asked for evaluating the performance of this recommender system.

Considered characteristics:

The characteristics according to which the parameters are suggested are as following:

1. Classification problem type (binary or multi-class)
2. Dataset type (balanced or imbalanced)

It should be noticed that in the case that the problem is either a binary or a multi-class classification on an imbalanced dataset, for recommending the parameters, just being imbalanced is considered. Therefore, the inspected states can be categorized into three main groups:

1. Balanced dataset – Binary classification
2. Balanced dataset – Multi-class classification
3. Imbalanced dataset

The definition of being imbalanced:

Recognizing the fact that a classification problem is binary or multi-class is so easy. But the margin between being balanced or imbalanced for a dataset is not clear. In PyCM module for checking if the input dataset is balanced or not, a definition has been introduced. According to this definition, if the ratio of the population of the most populous class to the population of the most deserted class is bigger than 3, the dataset is assumed imbalanced.

Recommended parameters:

The recommendation lists have been gathered according to the respective paper of each parameter and the capabilities which had been claimed by the paper. For further information, read the document of PyCM or visit the project page.

• Binary – Balanced recommended parameters: ACC, TPR, PPV, AUC, AUCI, TNR, F1

• Multi-class – Balanced recommended parameters: ERR, TPR Micro, TPR Macro, PPV Micro, PPV Macro, ACC, Overall ACC, MCC, Overall MCC, BCD, Hamming Loss, Zero-one Loss

• Imbalanced recommended parameters: Kappa, SOA1(Landis & Koch), SOA2(Fleiss), SOA3(Altman), SOA4(Cicchetti), CEN, MCEN, MCC, J, Overall J, Overall MCC, Overall CEN, Overall MCEN, AUC, AUCI, G, DP, DPI, GI

Questions: 1. Is the proposed definition of being imbalanced correct? Is there any more comprehensive definition for this characteristic? 2. Is recommending the same parameters for both binary and multi-class classification problem correct over imbalanced dataset? 3. Are the recommendation parameter lists correct and complete? Is there any other parameter for recommending? 4. Is there any other characteristics (like binary/multi-class and balanced/imbalanced) which can effect on evaluating the result of a classification method?

Website: http://www.pycm.ir/