<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Sorry, I didn't look carefully. </div><div class="gmail_quote"><br></div><div class="gmail_quote">You are right.</div><div class="gmail_quote">Looks like you might have to modify plr.py to change any targets of input dataset to {0,1} at line 72 (it needs `d` updated to contain only {0,1}.</div><div class="gmail_quote"><br></div><div class="gmail_quote">Or modify BinaryClassifier to assign 0 instead of 1 for labels </div><div class="gmail_quote">at lines 1015-1017 and update the assert at line 1051, and predictions at line 1066.</div><div class="gmail_quote"><br></div><div class="gmail_quote">Not straightforward.</div><div class="gmail_quote">Swaroop</div><div class="gmail_quote"><br></div><div class="gmail_quote"><br></div><div class="gmail_quote">On Wed, Mar 1, 2017 at 1:43 PM, Neal Morton <span dir="ltr"><<a href="mailto:mortonne@gmail.com" target="_blank">mortonne@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="white" lang="EN-US" link="blue" vlink="purple"><div class="m_-9122441949667854758m_2562781894534604572WordSection1"><p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">I have four classes, so I can’t just use {0,1}. It looks like no matter what the sample attributes of the input dataset are, MulticlassClassifier will send {-1,1} to the classifier. <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri">It looks like I need to either modify what MulticlassClassifier is sending to PLR, or change PLR to handle other labels.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:Calibri"><u></u> <u></u></span></p><div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in 0in 0in"><p class="MsoNormal"><b><span style="font-family:Calibri;color:black">From: </span></b><span style="font-family:Calibri;color:black">Pkg-ExpPsy-PyMVPA <pkg-exppsy-pymvpa-bounces+mor<wbr>tonne=<a href="mailto:gmail.com@lists.alioth.debian.org" target="_blank">gmail.com@lists.alioth.<wbr>debian.org</a>> on behalf of Swaroop Guntupalli <<a href="mailto:swaroopgj@gmail.com" target="_blank">swaroopgj@gmail.com</a>><br><b>Reply-To: </b>Development and support of PyMVPA <<a href="mailto:pkg-exppsy-pymvpa@lists.alioth.debian.org" target="_blank">pkg-exppsy-pymvpa@lists.aliot<wbr>h.debian.org</a>><br><b>Date: </b>Wednesday, March 1, 2017 at 12:38 PM<br><b>To: </b>Development and support of PyMVPA <<a href="mailto:pkg-exppsy-pymvpa@lists.alioth.debian.org" target="_blank">pkg-exppsy-pymvpa@lists.aliot<wbr>h.debian.org</a>><br><b>Subject: </b>Re: [pymvpa] Using PLR with multiclass<u></u><u></u></span></p></div><div><div class="m_-9122441949667854758h5"><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Does it help if you assign targets in your sample attributes to {0,1} instead?<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">On Wed, Mar 1, 2017 at 1:13 PM, Neal Morton <<a href="mailto:mortonne@gmail.com" target="_blank">mortonne@gmail.com</a>> wrote:<u></u><u></u></p><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"><div><div><p class="MsoNormal"><span style="font-size:11.0pt">Is there a way to use PLR with a multiclass problem? When I try to use the MulticlassClassifier, that produces binary labels with -1 and 1. But PLR expects 0 and 1.</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">The classifier is created like so:</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">from mvpa2.clfs.plr import PLR</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">from mvpa2.clfs.meta import MulticlassClassifier</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">clf = MulticlassClassifier(PLR(lm=10<wbr>))</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">When I try to train the classifier on an fMRI dataset with four classes, I get:</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">Traceback (most recent call last):</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">  File "/home1/03206/mortonne/analysi<wbr>s/bender/mvpa/loc_xval_diag.<wbr>py", line 98, in <module></span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">    clf.train(ds1)</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt"> File "/work/IRC/ls5/lib/python2.7/s<wbr>ite-packages/mvpa2/base/learne<wbr>r.py", line 137, in train</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">    self._train(ds)</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">  File "/work/IRC/ls5/lib/python2.7/s<wbr>ite-packages/mvpa2/clfs/meta.p<wbr>y", line 1165, in _train</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">    CombinedClassifier._train(self<wbr>, dataset)</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">  File "/work/IRC/ls5/lib/python2.7/s<wbr>ite-packages/mvpa2/clfs/meta.p<wbr>y", line 628, in _train</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">    BoostedClassifier._train(self, dataset)</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">  File "/work/IRC/ls5/lib/python2.7/s<wbr>ite-packages/mvpa2/clfs/meta.p<wbr>y", line 118, in _train</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">    clf.train(dataset)</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">  File "/work/IRC/ls5/lib/python2.7/s<wbr>ite-packages/mvpa2/base/learne<wbr>r.py", line 137, in train</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">    self._train(ds)</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">  File "/work/IRC/ls5/lib/python2.7/s<wbr>ite-packages/mvpa2/clfs/meta.p<wbr>y", line 1053, in _train</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">    self.clf.train(datasetselected<wbr>)</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">  File "/work/IRC/ls5/lib/python2.7/s<wbr>ite-packages/mvpa2/base/learne<wbr>r.py", line 137, in train</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">    self._train(ds)</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">  File "/work/IRC/ls5/lib/python2.7/s<wbr>ite-packages/mvpa2/clfs/plr.py<wbr>", line 76, in _train</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">    %(set(d),)</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">ValueError: Regressors for logistic regression should be [0,1]. Got set([1, -1])</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">I have the latest versions of meta.py and plr.py. There was a <a href="https://github.com/PyMVPA/PyMVPA/issues/37" target="_blank">change</a> in PLRWeights to support different values of labels, but that change doesn’t seem to have affected the PLR classifier.</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt"> </span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">Thanks,</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt">Neal</span><u></u><u></u></p><p class="MsoNormal"><span style="font-size:11.0pt"> </span><u></u><u></u></p></div></div><p class="MsoNormal"><br>______________________________<wbr>_________________<br>Pkg-ExpPsy-PyMVPA mailing list<br><a href="mailto:Pkg-ExpPsy-PyMVPA@lists.alioth.debian.org" target="_blank">Pkg-ExpPsy-PyMVPA@lists.alioth<wbr>.debian.org</a><br><a href="http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-exppsy-pymvpa" target="_blank">http://lists.alioth.debian.org<wbr>/cgi-bin/mailman/listinfo/pkg-<wbr>exppsy-pymvpa</a><u></u><u></u></p></blockquote></div><p class="MsoNormal"><u></u> <u></u></p></div><p class="MsoNormal">______________________________<wbr>_________________ Pkg-ExpPsy-PyMVPA mailing list <a href="mailto:Pkg-ExpPsy-PyMVPA@lists.alioth.debian.org" target="_blank">Pkg-ExpPsy-PyMVPA@lists.alioth<wbr>.debian.org</a> <a href="http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-exppsy-pymvpa" target="_blank">http://lists.alioth.debian.org<wbr>/cgi-bin/mailman/listinfo/pkg-<wbr>exppsy-pymvpa</a><u></u><u></u></p></div></div></div></div>
<br>______________________________<wbr>_________________<br>
Pkg-ExpPsy-PyMVPA mailing list<br>
<a href="mailto:Pkg-ExpPsy-PyMVPA@lists.alioth.debian.org" target="_blank">Pkg-ExpPsy-PyMVPA@lists.alioth<wbr>.debian.org</a><br>
<a href="http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-exppsy-pymvpa" rel="noreferrer" target="_blank">http://lists.alioth.debian.org<wbr>/cgi-bin/mailman/listinfo/pkg-<wbr>exppsy-pymvpa</a><br></blockquote></div><br></div></div>