I guess transforming it would be more in line with other classifiers. The
design decision could be "You should only have to know about multi-output
if you want to use it."


On Thu, Nov 29, 2012 at 10:07 AM, Doug Coleman <doug.cole...@gmail.com>wrote:

> Going off of my unit tests in my branch for classes= in init:
>
> Single output:
> clf = tree.DecisionTreeClassifier(classes=[1,2,3,4])
> clf.fit([[10]], [0])
> In [13]: clf.classes_
> Out[13]: [array([0, 1, 2, 3, 4])]
>
> Multi-output:
> clf = tree.DecisionTreeClassifier(classes=[[-1,1],[0,1,2,3,4]])
> y_hat = clf.fit(X_multi, y_multi).predict(T)
> In [9]: clf.classes_
> Out[9]: [array([-1,  1]), array([0, 1, 2, 3, 4])]
>
>
> So it's as you say and I understand why. Maybe we could have a method
> ``supports_multi_output`` that returns a boolean so we know what shape the
> classes_ are given some arbitrary clf? Or just introspect it?
>
> Doug
>
>
> On Thu, Nov 29, 2012 at 9:57 AM, Gilles Louppe <g.lou...@gmail.com> wrote:
>
>> Hi,
>>
>> Yes, since decision trees handle multi-output problems, classes_[i] is
>> an array containing the classes for the i-th output. Hence classes_[0]
>> is the array you are looking for when `y` is 1D.
>>
>> I guess we could transform classes_ directly into that array if the
>> decision tree is trained on a 1D-output, actually just like we already
>> do at the prediction time.
>>
>> What do you think?
>>
>> Gilles
>>
>> On 29 November 2012 18:48,  <amuel...@ais.uni-bonn.de> wrote:
>> > the classes_ attribute is not present in all classifiers and not
>> consistent,
>> > as you noticed.
>> > this is a known issue (see the issue tracker) and it would be great to
>> > address this.
>> > I am not sure about the decision trees in particular.
>> >
>> >
>> >
>> > Doug Coleman <doug.cole...@gmail.com> schrieb:
>> >>
>> >> Decision trees' classes are wrapped in another array for some reason. I
>> >> was under the impression that I could just get ``clf.classes_`` from
>> any old
>> >> classifier and it would be a nice list, but I guess I'm mistaken. It
>> makes
>> >> it hard to write utilities...is this an oversight or a bug, or by
>> design? I
>> >> haven't checked other classifiers.
>> >>
>> >> from sklearn.tree import DecisionTreeClassifier
>> >> clf1 = DecisionTreeClassifier()
>> >>
>> >> In [104]: clf1.classes_
>> >> Out[104]: [array([1, 2, 3])]
>> >>
>> >>
>> >> from sklearn.linear_model import SGDClassifier
>> >> clf2 = SGDClassifier()
>> >> clf2.fit([[1],[2],[3]], [1,2,3])
>> >>
>> >> In [100]: clf2.classes_
>> >> Out[100]: array([1, 2, 3])
>> >>
>> >>
>> >>
>> >>
>> >> Thanks,
>> >> Doug
>> >>
>> >> ________________________________
>> >>
>> >> Keep yourself connected to Go Parallel:
>> >> VERIFY Test and improve your parallel project with help from experts
>> >> and peers. http://goparallel.sourceforge.net
>> >>
>> >> ________________________________
>> >>
>> >> Scikit-learn-general mailing list
>> >> Scikit-learn-general@lists.sourceforge.net
>> >> https://lists.sourceforge.net/lists/listinfo/scikit-learn-general
>> >
>> > --
>> > Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail
>> > gesendet.dy>
>> >
>> >
>> ------------------------------------------------------------------------------
>> > Keep yourself connected to Go Parallel:
>> > VERIFY Test and improve your parallel project with help from experts
>> > and peers. http://goparallel.sourceforge.net
>> > _______________________________________________
>> > Scikit-learn-general mailing list
>> > Scikit-learn-general@lists.sourceforge.net
>> > https://lists.sourceforge.net/lists/listinfo/scikit-learn-general
>> >
>>
>>
>> ------------------------------------------------------------------------------
>> Keep yourself connected to Go Parallel:
>> VERIFY Test and improve your parallel project with help from experts
>> and peers. http://goparallel.sourceforge.net
>> _______________________________________________
>> Scikit-learn-general mailing list
>> Scikit-learn-general@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/scikit-learn-general
>>
>
>
------------------------------------------------------------------------------
Keep yourself connected to Go Parallel: 
VERIFY Test and improve your parallel project with help from experts 
and peers. http://goparallel.sourceforge.net
_______________________________________________
Scikit-learn-general mailing list
Scikit-learn-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/scikit-learn-general

Reply via email to