DOC cross-reference balanced accuracy (unadj.) being identical to macro avg recall and make link for accuracy being identical to weighted avg recall

### Describe the workflow you want to enable
_[Please add label: module:metrics]_

In the output of metrics.classification_report, it should be explicitly indicated that the weighted average recall shown is in fact always identical to the accuracy shown separately (i.e. redundantly), and the macro average recall shown is identical to the metrics.balanced_accuracy_score (though not _adjusted_ balanced accuracy).

Here's a (non-toy) multi-class example showing that for both metrics, they match in all 15 decimal places in the **existing** classification_report :
```
classification_report(y_tst, y_pred_tst, digits=15) =
                 precision         recall            f1-score               support

              0  0.817246835443038 0.683879510095995 0.744638673634889      3021
              1  0.829678021465236 0.696708463949843 0.757401490947817      2552
              2  0.770103092783505 0.630912162162162 0.693593314763231      1184
              3  0.331294597349643 0.844155844155844 0.475841874084919       385
              4  0.394505494505494 0.920512820512820 0.552307692307692       390

       accuracy                                      0.700345193839618      7532
      macro avg  0.628565608309383 0.755233760175333 0.644756609147710      7532
   weighted avg  0.767319254559894 0.700345193839618 0.717240526308044      7532

balanced_accuracy_score(
              y_tst, y_pred_tst) = 0.755233760175333
```
(I've inserted some spaces above to fix the misalignment of the classification_report output for this many digits.   Would you like to see the confusion matrix that gives rise to the classification report above?)

These matches are of course not a coincidence.  If you compare the definition of accuracy to that of _micro_ average recall, you will see that they are one and the same, and the weighted average recall is known to be equal to the micro average recall and therefore equal to the accuracy.

Similarly the definition of macro average recall is the same as the definition of balanced accuracy used (by default) by metrics.balanced_accuracy_score: basically the simple average over classes of the proportion (of sample weight) classified correctly among the actual instances of each given class.

### Describe your proposed solution

As a minimal change, we could simply add another column to metrics.classification_report, something like this:
```
             precision  recall  f1-score support   name of avg recall
                              
     class 0    0.50    1.00     0.67       1
     class 1    0.00    0.00     0.00       1
     class 2    1.00    0.67     0.80       3

    accuracy                     0.60       5
   macro avg    0.50    0.56     0.49       5      balanced accur. (unadj.)
weighted avg    0.70    0.60     0.61       5      accuracy
```
Perhaps an optional keyword could suppress the existing (redundant) accuracy line included above, and perhaps in some future version this suppression could become the default.

### Describe alternatives you've considered, if relevant

Here is a possible variant that puts the metric names next to their values (and I've suppressed the separate, redundant accuracy line):
```
             precision  recall =avg metric     f1-score  support  
                                                                        
     class 0    0.50     1.00                     0.67       1    
     class 1    0.00     0.00                     0.00       1    
     class 2    1.00     0.67                     0.80       3    
                                                                
   macro avg    0.50     0.56  =balanced accur.   0.49       5    
weighted avg    0.70     0.60  =accuracy          0.61       5 
```
Here is another possible variant: 
```
             precision   recall  f1-score  support    avg recall metric name
                                 
     class 0    0.50       1.00     0.67       1
     class 1    0.00       0.00     0.00       1
     class 2    1.00       0.67     0.80       3
                                 
   macro avg    0.50    B= 0.56     0.49       5      B= bal. accur. (unadj.)
weighted avg    0.70    A= 0.60     0.61       5      A= accuracy
```


### Additional context

It's important that users understand that it's redundant to look at both the accuracy and the weighted avg recall, or both the balanced accuracy and the macro avg recall.  Let's not provide the same metric redundantly under multiple names, without pointing this out, so that the user naturally assumes that they are distinct metrics that are separately worthy of their attention.

COMMENT:
> What about the fact that it is displaying the accuracy twice, including once as weighted avg recall and then again unnecessarily as "accuracy" but under the f1-score column? Is this redundancy necessary?

IMO, this is not a problem. They are equivalent and for completeness, I am fine with the current output.

> Most people will not realize that they don't need to pay attention to both separately, like comparing "both" metrics between two classifiers when in fact they are the same metric.

I hope that people try to understand the metric that they compute. We can make it easier by documenting the metrics equivalence when it is not yet the case. If people blindly compare the metrics that are equivalent, there is actually no harm because it leads to the same conclusion.

What I could consider for the accuracy, is to make more separated from the averaged metrics.

Labels: Documentation, module:metrics