-
-
Notifications
You must be signed in to change notification settings - Fork 25.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Extend ClassifierChain to multi-output problems #9245
Comments
@jnothman I am new to contributing this project. Would like to start here. The way i understand this is that currently, ClassifierChain predicts that a given instance belongs to a class, and goes on (by passing this prediction to next estimator in the chain) to check for other classes.So would extending it to support multi-output include implementing a new parameter which, if set, tells it to not check for further classes? |
no it's basically the same structure. at the moment it is multilabel, which
is equivalent to multi-output for binary problems. The chain consists of a
collection of binary classifiers. Extending to multi-output multiclass
(which I should have stated more explicitly above) just means each
classifier may be multiclass.
…On 3 Jul 2017 12:39 am, "siebenHeaven" ***@***.***> wrote:
@jnothman <https://github.com/jnothman> I am new to contributing this
project. Would like to start here. The way i understand this is that
currently, ClassifierChain predicts that a given instance belongs to a
class, and goes on (by passing this prediction to next estimator in the
chain) to check for other classes.So would extending it to support
multi-output include implementing a new parameter which, if set, tells it
to not check for further classes?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#9245 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAEz67V5r4kXdHBwDYJlAd4LIajkWGB8ks5sJ6ujgaJpZM4OJHOm>
.
|
Ok! So right now, the base estimator that is passed to the |
No, use the same class. Basically, you just need to ensure that the |
I could take it up, if no one is currently working on it. |
you may, @Johayon.
|
@jnothman just to clarify, by multi-output you mean multi-class, right? Because I feel that the convention that is currently used is that multi-output == multi-label. Anyway, I confirm that this is currently causing issues, especially given that the outputs of For multi-output binary problems, this is OK, as it is assumed that the method returns the probability of the positive class for each output. However, in the multioutput-multiclass case, what @Johayon if you have decided not to work on this any more, pls let me know and I would be happy to take it up. |
Yes, I mean multioutput multiclass. And we know that there are
inconsistencies in predict_proba for multilabel, although that's better
described with respect to decision_function:
http://scikit-learn.org/0.20/glossary.html#term-decision-function
Yes, I think we should ideally be working towards a more consistent
probability representation for multilabel, beginning with deprecating
OneVsRestClassifier for multilabel... But other core devs may disagree
|
I am still getting a No Loop Matching Error for .predict_proba(). |
There is a PR under-way to address this issue (#14654). It is currently in stall mode due to conflicts with the master etc, but I hope to be able to address this in the next few weeks. |
Looking deeper into this, If we want to implement this, do we ask
|
ClassifierChain currently supports multilabel classification. It should be straightforward to extend it to multi-output (as long as it only chains on
predict
) except for implementingClassifierChain.{predict_proba,decision_function}
which will take some care.The text was updated successfully, but these errors were encountered: