2013/1/23 Andreas Mueller <amuel...@ais.uni-bonn.de>: > Am 23.01.2013 16:47, schrieb Philipp Singer: >> That's what I originally thought, but then I tried it with just using >> LinearSVC and it magically worked for my sample dataset, really >> interesting. I think it is working now properly. > I'm pretty sure it shouldn't.
Nope, it shouldn't. >> What I am asking myself is how exactly the decision is made for the >> multilabel prediction. Is there some way of influencing it? For example >> sometimes it predicts zero classes and sometimes several. > OneVsRestClassifier does - surprise - one-vs-rest classification. > This means there is a binary classifier pre class. If none of these > predict class presence, no class is predicted... > You could try using different thresholds on the decision_function, > if you want more predictions or something... More in detail: OneVsRestClassifier exports an object called label_binarizer_, which is used to transform decision function values D back to class labels. By default, it picks all the classes for which D > 0, but its threshold argument can be used to change that. So, if clf is an OvR classifier and D = clf.decision_function(x) for a *single sample* x contains no positive values, then # untested, may contain mistakes clf.label_binarizer_.inverse_transform(D, threshold=(D.max() + epsilon)) will predict at least one class label for x, namely the one with the highest value according to the decision_function. The epsilon is needed because inverse_transform compares values using >, not >=; set it to a small value. Doing this for batches of samples is a bit more involved. Of course, you can set the threshold to any value. Whether any of this makes sense depends on your problem. [I used to be opposed to exporting the LabelBinarizer object on OvR estimators, but I guess I should give up the struggle now -- this is actually useful.] -- Lars Buitinck Scientific programmer, ILPS University of Amsterdam ------------------------------------------------------------------------------ Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. ON SALE this month only -- learn more at: http://p.sf.net/sfu/learnnow-d2d _______________________________________________ Scikit-learn-general mailing list Scikit-learn-general@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/scikit-learn-general