示例#1
0
    def test_toy_minlip_predict_2_cvxpy(self):
        m = MinlipSurvivalAnalysis(solver="cvxpy", alpha=1, pairs="next")
        y = self.y.copy()
        y["time"] = numpy.arange(1, 7)
        m.fit(self.x, y)

        p = m.predict(numpy.array([[3, 4], [41, 29]]))
        assert_array_almost_equal(numpy.array([-0.341626, -5.374394]), p)
示例#2
0
    def test_toy_minlip_fit_cvxpy(self):
        m = MinlipSurvivalAnalysis(solver="cvxpy", alpha=2, pairs="next")
        m.fit(self.x, self.y)

        self.assertTupleEqual((1, self.x.shape[0]), m.coef_.shape)
        self.assertEqual(1, m.coef0)
        expected_coef = numpy.array([[-7.18695994e-02, 7.18695994e-02, -7.51880574e-13,
                                      -2.14618562e-01, 2.14618562e-01, 0]])
        assert_array_almost_equal(m.coef_, expected_coef)
示例#3
0
    def test_breast_cancer_cvxpy(self):
        m = MinlipSurvivalAnalysis(solver="cvxpy", alpha=1, pairs="next")
        m.fit(self.x.values, self.y)

        self.assertTupleEqual((1, self.x.shape[0]), m.coef_.shape)

        p = m.predict(self.x.values)
        v = concordance_index_censored(self.y['cens'], self.y['time'], p)
        expected = numpy.array([0.59576770470121443, 79280, 53792, 0, 32])

        assert_array_almost_equal(expected, v)
示例#4
0
    def test_breast_cancer_rbf_cvxopt(self):
        m = MinlipSurvivalAnalysis(solver="cvxopt", alpha=1, kernel="rbf", pairs="next")
        m.fit(self.x.values, self.y)

        self.assertTupleEqual((1, self.x.shape[0]), m.coef_.shape)

        p = m.predict(self.x.values)
        v = concordance_index_censored(self.y['cens'], self.y['time'], p)

        expected = numpy.array([0.63261242034387399, 84182, 48888, 2, 32])

        assert_array_almost_equal(expected, v)
示例#5
0
    def test_toy_minlip_predict_1_cvxpy(self):
        m = MinlipSurvivalAnalysis(solver="cvxpy", alpha=1, pairs="next")
        m.fit(self.x, self.y)

        p = m.predict(self.x)
        v = concordance_index_censored(self.y['status'], self.y['time'], p)

        self.assertEqual(1.0, v[0])
        self.assertEqual(11, v[1])
        self.assertEqual(0, v[2])
        self.assertEqual(0, v[3])
        self.assertEqual(0, v[4])
示例#6
0
    def test_breast_cancer_rbf_cvxpy(self):
        m = MinlipSurvivalAnalysis(solver="cvxpy", alpha=1, kernel="rbf", pairs="next")
        m.fit(self.x.values, self.y)

        self.assertTupleEqual((1, self.x.shape[0]), m.coef_.shape)

        p = m.predict(self.x.values)
        v = concordance_index_censored(self.y['cens'], self.y['time'], p)

        self.assertAlmostEqual(0.6286334, v[0], 3)
        self.assertEqual(83653, v[1])
        self.assertEqual(49418, v[2])
        self.assertEqual(1, v[3])
        self.assertEqual(32, v[4])
示例#7
0
    def test_kernel_precomputed(self):
        from sklearn.metrics.pairwise import pairwise_kernels
        from sklearn.cross_validation import _safe_split

        m = MinlipSurvivalAnalysis(kernel="precomputed", solver="cvxpy")
        K = pairwise_kernels(self.x, metric="rbf")

        train_idx = numpy.arange(50, self.x.shape[0])
        test_idx = numpy.arange(50)
        X_fit, y_fit = _safe_split(m, K, self.y, train_idx)
        X_test, y_test = _safe_split(m, K, self.y, test_idx, train_idx)

        m.fit(X_fit, y_fit)

        p = m.predict(X_test)
        v = concordance_index_censored(y_test['cens'], y_test['time'], p)

        expected = numpy.array([0.508748, 378, 365, 0, 0])

        assert_array_almost_equal(expected, v)
示例#8
0
    def test_unknown_solver(self):
        m = MinlipSurvivalAnalysis(solver=None)
        self.assertRaisesRegex(ValueError, "unknown solver: None",
                               m.fit, self.x.values, self.y)

        m.set_params(solver="i don't know")
        self.assertRaisesRegex(ValueError, "unknown solver: i don't know",
                               m.fit, self.x.values, self.y)

        m.set_params(solver=[('why', 'are'), ('you', 'doing this')])
        self.assertRaisesRegex(ValueError, "unknown solver: \[\('why', 'are'\), \('you', 'doing this'\)\]",
                               m.fit, self.x.values, self.y)
示例#9
0
    def test_toy_minlip_timeit(self):
        m = MinlipSurvivalAnalysis(alpha=1, pairs="next", timeit=7)
        m.fit(self.x, self.y)

        self.assertEqual(7, len(m.timings_))