Hi I'm a scikit newbie here. I'm trying to train the computer that given an array of float decide between the 3 classes. I was classifying the classes as 0, 0.5, and 1. I also tried 0, 1.0, and 2.0 . I still get the following error:
File "/Library/Python/2.7/site-packages/sklearn/utils/multiclass.py", line 85, in unique_labels
raise ValueError("Mix type of y not allowed, got types %s" % ys_types)
ValueError: Mix type of y not allowed, got types set(['continuous', 'multiclass'])
I have no idea what that error means
Try using integer types for your target labels. Or, perhaps better, use string labels like ['a', 'b', 'c']
but with more descriptive names.
If you check the code for this file multiclass.py
(code is here) and look for the function type_of_target
, you'll see that it is well-documented for this case.
Because some of the data are treated as float
type (when 0.5
is included), it will believe you've got continuous-valued outputs, which won't do for multiclass discrete classification.
On the other hand, it will look at [0, 1.0, 2.0]
like it is one integer and two floats
, which is why you get both continuous
and multiclass
. Switching the last example to [0, 1, 2]
should work. The documentation also makes it sound like switching to [0.0, 1.0. 2.0]
would also work, but be careful and test that first.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With