70 lines
2.9 KiB
Python
70 lines
2.9 KiB
Python
import numpy as np
|
|
|
|
from sklearn.externals.six.moves import xrange
|
|
|
|
from sklearn.utils.testing import assert_array_equal
|
|
from sklearn.utils.testing import assert_true
|
|
from sklearn.utils.testing import assert_false
|
|
from sklearn.utils.testing import assert_raises
|
|
|
|
from sklearn.utils.multiclass import unique_labels
|
|
from sklearn.utils.multiclass import is_label_indicator_matrix
|
|
from sklearn.utils.multiclass import is_multilabel
|
|
|
|
|
|
def test_unique_labels():
|
|
# Empty iterable
|
|
assert_raises(ValueError, unique_labels)
|
|
|
|
# Multiclass problem
|
|
assert_array_equal(unique_labels(xrange(10)), np.arange(10))
|
|
assert_array_equal(unique_labels(np.arange(10)), np.arange(10))
|
|
assert_array_equal(unique_labels([4, 0, 2]), np.array([0, 2, 4]))
|
|
|
|
# Multilabels
|
|
assert_array_equal(unique_labels([(0, 1, 2), (0,), tuple(), (2, 1)]),
|
|
np.arange(3))
|
|
assert_array_equal(unique_labels([[0, 1, 2], [0], list(), [2, 1]]),
|
|
np.arange(3))
|
|
assert_array_equal(unique_labels(np.array([[0, 0, 1],
|
|
[1, 0, 1],
|
|
[0, 0, 0]])),
|
|
np.arange(3))
|
|
|
|
# Several arrays passed
|
|
assert_array_equal(unique_labels([4, 0, 2], xrange(5)),
|
|
np.arange(5))
|
|
assert_array_equal(unique_labels((0, 1, 2), (0,), (2, 1)),
|
|
np.arange(3))
|
|
|
|
|
|
def test_is_multilabel():
|
|
assert_true(is_multilabel([[1], [2], [0, 1]]))
|
|
assert_true(is_multilabel([[1], [2]]))
|
|
assert_true(is_multilabel([[1], [2], []]))
|
|
assert_true(is_multilabel([[1], [0, 2], []]))
|
|
assert_true(is_multilabel(np.random.randint(2, size=(10, 10))))
|
|
|
|
assert_false(is_multilabel(range(10)))
|
|
assert_false(is_multilabel(np.arange(10)))
|
|
assert_false(is_multilabel(np.reshape(np.arange(10), (1, -1))))
|
|
assert_false(is_multilabel(np.reshape(np.arange(10), (-1, 1))))
|
|
assert_false(is_multilabel(np.random.randint(2, size=(10, ))))
|
|
assert_false(is_multilabel(np.random.randint(2, size=(10, 1))))
|
|
|
|
|
|
def test_is_label_indicator_matrix():
|
|
assert_true(is_label_indicator_matrix(np.random.randint(2, size=(10, 10))))
|
|
|
|
assert_false(is_label_indicator_matrix([[1], [2], [0, 1]]))
|
|
assert_false(is_label_indicator_matrix([[1], [2]]))
|
|
assert_false(is_label_indicator_matrix([[1], [2], []]))
|
|
assert_false(is_label_indicator_matrix([[1], [0, 2], []]))
|
|
assert_false(is_label_indicator_matrix(range(10)))
|
|
assert_false(is_label_indicator_matrix(np.arange(10)))
|
|
assert_false(is_label_indicator_matrix(np.reshape(np.arange(9), (3, 3))))
|
|
assert_false(is_label_indicator_matrix(np.reshape(np.arange(10), (-1, 1))))
|
|
assert_false(is_label_indicator_matrix(np.reshape(np.arange(10), (1, -1))))
|
|
assert_false(is_label_indicator_matrix(np.random.randint(2, size=(10, ))))
|
|
assert_false(is_label_indicator_matrix(np.random.randint(2, size=(10, 1))))
|