def test_survial_constraints_no_ties(): y = numpy.array([True, True, False, True, False, False, False, False]) time = numpy.array([20, 46, 56, 63, 77, 90, 100, 104]) expected_order = numpy.arange(len(time)).astype(numpy.int) expected = numpy.array([ [-1, 1, 0, 0, 0, 0, 0, 0], [-1, 0, 1, 0, 0, 0, 0, 0], [-1, 0, 0, 1, 0, 0, 0, 0], [-1, 0, 0, 0, 1, 0, 0, 0], [-1, 0, 0, 0, 0, 1, 0, 0], [-1, 0, 0, 0, 0, 0, 1, 0], [-1, 0, 0, 0, 0, 0, 0, 1], [0, -1, 1, 0, 0, 0, 0, 0], [0, -1, 0, 1, 0, 0, 0, 0], [0, -1, 0, 0, 1, 0, 0, 0], [0, -1, 0, 0, 0, 1, 0, 0], [0, -1, 0, 0, 0, 0, 1, 0], [0, -1, 0, 0, 0, 0, 0, 1], [0, 0, 0, -1, 1, 0, 0, 0], [0, 0, 0, -1, 0, 1, 0, 0], [0, 0, 0, -1, 0, 0, 1, 0], [0, 0, 0, -1, 0, 0, 0, 1], ], dtype=numpy.int8) samples_order = FastSurvivalSVM._argsort_and_resolve_ties(time, None) assert_array_equal(expected_order, samples_order) A = survival_constraints_simple(numpy.asarray(y[samples_order], dtype=numpy.uint8)) assert_array_equal(expected, A.todense())
def test_survival_constraints_with_ties(self): y = numpy.array([ True, True, False, False, True, False, True, True, False, False, False, True ]) time = numpy.array([20, 33, 33, 40, 50, 66, 66, 66, 89, 110, 110, 111]) expected_order = numpy.array([0, 2, 1, 3, 4, 7, 5, 6, 8, 9, 10, 11]) samples_order = FastSurvivalSVM._argsort_and_resolve_ties( time, numpy.random.RandomState(0)) numpy.testing.assert_array_equal(expected_order, samples_order) expected = numpy.array([ [-1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [-1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], [-1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0], [-1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0], [-1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0], [-1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], [-1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0], [-1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0], [-1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0], [-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0], [-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0], [0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0], [0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 0], [0, 0, -1, 0, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, -1, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1], [0, 0, 0, 0, 0, 0, 0, -1, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, -1, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1], ], dtype=numpy.int8) A = survival_constraints_simple( numpy.asarray(y[samples_order], dtype=numpy.uint8)) assert_array_equal(expected, A.todense())