<div dir="ltr"><div class="gmail_default" style="font-size:small">If I use the n+1 approach, then I get the correct matrix, except with the columns of zeros:</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><div class="gmail_default">>>> test</div><div class="gmail_default">array([[0., 0., 0., 0., 0., 0., 0., 1., 1., 0., 0., 0., 0., 0., 1.],</div><div class="gmail_default">       [0., 1., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 0., 0., 0.],</div><div class="gmail_default">       [1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 0., 1., 0., 0.],</div><div class="gmail_default">       [0., 1., 0., 0., 0., 0., 0., 0., 1., 0., 0., 0., 0., 1., 0.]])</div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 5, 2018 at 12:25 AM, Sarah Wait Zaranek <span dir="ltr"><<a href="mailto:sarah.zaranek@gmail.com" target="_blank">sarah.zaranek@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 dir="ltr"><div class="gmail_default" style="font-size:small">Hi Joel -</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Conceptually, that makes sense.  But when I assign n_values, I can't make it match the result when you don't specify them. See below.  I used the number of unique levels per column.</div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><div class="gmail_default">>>> enc = OneHotEncoder(sparse=False)</div><div class="gmail_default">>>> test = enc.fit_transform([[7, 0, 3], [1, 2, 0], [0, 2, 1], [1, 0, 2]])</div><div class="gmail_default">>>> test</div><div class="gmail_default">array([[0., 0., 1., 1., 0., 0., 0., 0., 1.],</div><div class="gmail_default">       [0., 1., 0., 0., 1., 1., 0., 0., 0.],</div><div class="gmail_default">       [1., 0., 0., 0., 1., 0., 1., 0., 0.],</div><div class="gmail_default">       [0., 1., 0., 1., 0., 0., 0., 1., 0.]])</div><div class="gmail_default">>>> enc = OneHotEncoder(sparse=False,n_<wbr>values=[3,2,4])</div><div class="gmail_default">>>> test = enc.fit_transform([[7, 0, 3], [1, 2, 0], [0, 2, 1], [1, 0, 2]])</div><div class="gmail_default">>>> test</div><div class="gmail_default">array([[0., 0., 0., 1., 0., 0., 0., 1., 1.],</div><div class="gmail_default">       [0., 1., 0., 0., 0., 2., 0., 0., 0.],</div><div class="gmail_default">       [1., 0., 0., 0., 0., 1., 1., 0., 0.],</div><div class="gmail_default">       [0., 1., 0., 1., 0., 0., 0., 1., 0.]])</div><div><br></div><div>Cheers,<br>Sarah</div></div><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small">Cheers,<br>Sarah</div></div><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On Mon, Feb 5, 2018 at 12:02 AM, Joel Nothman <span dir="ltr"><<a href="mailto:joel.nothman@gmail.com" target="_blank">joel.nothman@gmail.com</a>></span> wrote:<br></span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><div dir="ltr"><div class="gmail_extra">If each input column is encoded as a value from 0 to the (number of possible values for that column - 1) then n_values for that column should be the highest value + 1, which is also the number of levels per column. Does that make sense?</div><div class="gmail_extra"><br></div><div class="gmail_extra">Actually, I've realised there's a somewhat slow and unnecessary bit of code in the one-hot encoder: where the COO matrix is converted to CSR. I suspect this was done because most of our ML algorithms perform better on CSR, or else to maintain backwards compatibility with an earlier implementation.</div></div>
<br></span><span class="">______________________________<wbr>_________________<br>
scikit-learn mailing list<br>
<a href="mailto:scikit-learn@python.org" target="_blank">scikit-learn@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/scikit-learn" rel="noreferrer" target="_blank">https://mail.python.org/mailma<wbr>n/listinfo/scikit-learn</a><br>
<br></span></blockquote></div><br></div>
</blockquote></div><br></div>