> Firstly, balanced accuracy is a different thing, and yes, it should be 
> supported.

> Secondly, I am correct in thinking you're talking about multiclass (not 
> multilabel).


Sorry for the confusion, and yes, you are right. I think have mixed the terms 
“average per-class accuracy” with “balanced accuracy” then.

Maybe to clarify, a corrected example to describe what I meant. Given the 
confusion matrix

               predicted
               label

               [ 3,  0,  0]
 true        [ 7, 50, 12]
 label       [ 0,  0, 18]


I’d compute the accuracy as TP / TN =  (3 + 50 + 18) / 90 = 0.79

and the “average per-class accuracy” as 

(83/90 + 71/90 + 78/90) / 3 = (83 + 71 + 78) / (3 * 90) = 0.86 

(I hope I got it right this time!)

In any case, I am not finding any literature describing this, and I am also not 
proposing to add it to sickit-learn, just wanted to get some info whether this 
is implemented or not. Thanks! :)
      
     

> On Mar 8, 2016, at 8:29 PM, Joel Nothman <joel.noth...@gmail.com> wrote:
> 
> Firstly, balanced accuracy is a different thing, and yes, it should be 
> supported.
> 
> Secondly, I am correct in thinking you're talking about multiclass (not 
> multilabel).
> 
> However, what you're describing isn't accuracy. It's actually micro-averaged 
> recall, except that your dataset is impossible because you're allowing there 
> to be fewer predictions than instances. If we assume that we're allowed to 
> predict some negative class, that's fine; we can nowadays exclude it from 
> micro-averaged recall with the labels parameter to recall_score. (If all 
> labels are included in a multiclass problem, micro-averaged recall = 
> precision = fscore = accuracy.)
> 
> I had assumed you meant binarised accuracy, which would add together both 
> true positives and true negatives for each class.
> 
> Either way, if there's no literature on this, I think we'd really best not 
> support it.
> 
> On 9 March 2016 at 11:15, Sebastian Raschka <se.rasc...@gmail.com> wrote:
> I haven’t seen this in practice, yet, either. A colleague was looking for 
> this in scikit-learn recently, and he asked me if I know whether this is 
> implemented or not. I couldn’t find anything in the docs and was just curious 
> about your opinion. However, I just found this entry here on wikipedia:
> 
> https://en.wikipedia.org/wiki/Accuracy_and_precision
> > Another useful performance measure is the balanced accuracy[10] which 
> > avoids inflated performance estimates on imbalanced datasets. It is defined 
> > as the arithmetic mean of sensitivity and specificity, or the average 
> > accuracy obtained on either class:
> 
> > Am I right in thinking that in the binary case, this is identical to 
> > accuracy?
> 
> 
> I think it would only be equal to the “accuracy” if the class labels are 
> uniformly distributed.
> 
> >  I'm not sure what this metric is getting at.
> 
> I have to think about this more, but I think it may be useful for imbalanced 
> datasets where you want to emphasize the minority class. E.g., let’s say we 
> have a dataset of 120 samples and three class labels 1, 2, 3. And the classes 
> are distributed like this
> 10 x 1
> 50 x 2
> 60 x 3
> 
> Now, let’s assume we have a model that makes the following predictions
> 
> - it gets 0 out of 10 from class 1 right
> - 45 out of 50 from class 2
> - 55 out of 60 from class 3
> 
> So, the accuracy would then be computed as
> 
> (0 + 45 + 55) / 120 = 0.833
> 
> But the “balanced accuracy” would be much lower, because the model did really 
> badly on class 1, i.e.,
> 
> (0/10 + 45/50 + 55/60) / 3 = 0.61
> 
> Hm, if I see this correctly, this is actually very similar to the F1 score. 
> But instead of computing the harmonic mean between “precision and the true 
> positive rate), we compute the harmonic mean between "precision and true 
> negative rate"
> 
> > On Mar 8, 2016, at 6:40 PM, Joel Nothman <joel.noth...@gmail.com> wrote:
> >
> > I've not seen this metric used (references?). Am I right in thinking that 
> > in the binary case, this is identical to accuracy? If I predict all 
> > elements to be the majority class, then adding more minority classes into 
> > the problem increases my score. I'm not sure what this metric is getting at.
> >
> > On 8 March 2016 at 11:57, Sebastian Raschka <se.rasc...@gmail.com> wrote:
> > Hi,
> >
> > I was just wondering why there’s no support for the average per-class 
> > accuracy in the scorer functions (if I am not overlooking something).
> > E.g., we have 'f1_macro', 'f1_micro', 'f1_samples', ‘f1_weighted’ but I 
> > didn’t see a ‘accuracy_macro’, i.e.,
> > (acc.class_1 + acc.class_2 + … + acc.class_n) / n
> >
> > Would you discourage its usage (in favor of other metrics in imbalanced 
> > class problems) or was it simply not implemented, yet?
> >
> > Best,
> > Sebastian
> > ------------------------------------------------------------------------------
> > Transform Data into Opportunity.
> > Accelerate data analysis in your applications with
> > Intel Data Analytics Acceleration Library.
> > Click to learn more.
> > http://makebettercode.com/inteldaal-eval
> > _______________________________________________
> > Scikit-learn-general mailing list
> > Scikit-learn-general@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/scikit-learn-general
> >
> > ------------------------------------------------------------------------------
> > Transform Data into Opportunity.
> > Accelerate data analysis in your applications with
> > Intel Data Analytics Acceleration Library.
> > Click to learn more.
> > http://makebettercode.com/inteldaal-eval_______________________________________________
> > Scikit-learn-general mailing list
> > Scikit-learn-general@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/scikit-learn-general
> 
> 
> ------------------------------------------------------------------------------
> Transform Data into Opportunity.
> Accelerate data analysis in your applications with
> Intel Data Analytics Acceleration Library.
> Click to learn more.
> http://pubads.g.doubleclick.net/gampad/clk?id=278785111&iu=/4140
> _______________________________________________
> Scikit-learn-general mailing list
> Scikit-learn-general@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/scikit-learn-general
> 
> ------------------------------------------------------------------------------
> Transform Data into Opportunity.
> Accelerate data analysis in your applications with
> Intel Data Analytics Acceleration Library.
> Click to learn more.
> http://pubads.g.doubleclick.net/gampad/clk?id=278785111&iu=/4140_______________________________________________
> Scikit-learn-general mailing list
> Scikit-learn-general@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/scikit-learn-general


------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785111&iu=/4140
_______________________________________________
Scikit-learn-general mailing list
Scikit-learn-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/scikit-learn-general

Reply via email to