9
$\begingroup$

I'm looking for a Python library that can compute the confusion matrix for multi-label classification.


FYI:

$\endgroup$
  • $\begingroup$ What did you end up doing? $\endgroup$ – Morteza Shahriari Nia Oct 13 '16 at 22:27
  • $\begingroup$ @MortezaShahriariNia I stayed monolabeled. $\endgroup$ – Franck Dernoncourt Oct 13 '16 at 22:33
  • $\begingroup$ what would a theoretical multilabel confusion matrix look like? I do not think it applies, does it? $\endgroup$ – user798719 May 25 '17 at 4:05
  • 3
    $\begingroup$ very funny that all 3 answers to this question are of such remarkably low quality. $\endgroup$ – Monica Heddneck Aug 11 '17 at 6:41
  • $\begingroup$ Not aware of any packages, but you could perhaps consider all possible multi-label combination as a separate class and use some of the already-available packages for multi-class. Then, from that confusion, build your multi-label matrix $\endgroup$ – Valentin Calomme Jan 30 '18 at 22:20
3
$\begingroup$

Also take a look at scikit-multilearn. It is a very good library that extends sklearn for multi-label learning. However, I'm not sure how the confusion matrix works for multi-label problems...

This guy claims he has solved it.

| improve this answer | |
$\endgroup$
1
$\begingroup$

There are many different parameters which can evaluate the performance of your method by comparing the real and predicted labels. I suggest PyCM module which can give a vast variety these parameters which are suitable for multi-class classification.

| improve this answer | |
$\endgroup$
1
$\begingroup$

Although this question is old, I am writing this answer for new audience.
scikit-learn now supports confusion matrix for multi-label classification.

https://scikit-learn.org/stable/modules/generated/sklearn.metrics.multilabel_confusion_matrix.html

| improve this answer | |
$\endgroup$
1
$\begingroup$

Try mlxtend. Here's an example of multi-class case.

enter image description here

| improve this answer | |
$\endgroup$
  • 2
    $\begingroup$ how about multi-label multi-class? Is it supported? $\endgroup$ – Franck Dernoncourt Feb 15 '17 at 17:49
0
$\begingroup$

Sklearn has a method for it using which you can compute confusion matrix for multi class.

from sklearn import cross_validation
confusion_matrix(original, Predicted)
| improve this answer | |
$\endgroup$
0
$\begingroup$

Scikit-learn does support multi-label confusion matrix. See the links below for documentation and user guide:

http://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html

http://scikit-learn.org/stable/modules/model_evaluation.html#confusion-matrix

| improve this answer | |
$\endgroup$
  • 1
    $\begingroup$ Thank you, that's why I am looking for an alternative option :-) $\endgroup$ – Franck Dernoncourt Feb 15 '17 at 17:48
0
$\begingroup$

Look at sed_eval library. It is developed for evaluating event detection in audio which is a multi-label problem (as in each audio, multiple events exist). They have many evaluation options, which might fit to your needs. You can get the true-positive rate, ... and from there computing the confusion matrix is not that hard.

| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.