예제 #1
0
 def test_linreg_20_test(self):
     X, y = gen_regression_data()
     args = Args(data_set="./out/lin.p",
                 solution="./out/lin-sol.p",
                 engine="linreg")
     mlak.set_preferred_engine(args.engine)
     with CapturedStdout() as out:
         mlak.test(args)
     self.assertAlmostEqual(float(out.getvalue()), 7.117094744250965e-06)
예제 #2
0
 def test_keras_20_test(self):
     X, y = gen_regression_data()
     args = Args(data_set="./out/keras.p",
                 solution="./out/keras-sol.p",
                 engine="keras")
     mlak.set_preferred_engine(args.engine)
     with CapturedStdout() as out:
         mlak.test(args)
     self.assertEqual(out.getvalue(), "0.0\n")
예제 #3
0
 def test_struggle_10_train(self):
     X, y = gen_logistic_data()
     dio.save("./out/struggle.p", {"X": X, "y": y})
     args = Args(data_set="./out/struggle.p",
                 solution="./out/struggle-sol.p",
                 topology=["10"],
                 Lambda="0.1",
                 iterations=1,
                 engine="struggle")
     mlak.set_preferred_engine(args.engine)
     with CapturedStdout():
         mlak.train(args)
     with CapturedStdout() as out:
         mlak.test(args)
     self.assertEqual(out.getvalue(), "0.5706666666666667\n")
     solution = dio.load("./out/struggle-sol.p")
     npt.assert_equal(solution.shaper()._classesIdToLabel,
                      ["diamond", "drill", "ripple"])
     npt.assert_equal(solution.model()[0], [256, 10, 3])
     t = solution.model()[1]
     npt.assert_almost_equal([np.sum(
         t[0]), np.sum(t[1]), np.sum(t[2])],
                             [0.14382, 0.0245429, -0.132043])
     self.assertAlmostEqual(np.sum(solution.shaper().mu()),
                            205.85431033692913)
     self.assertAlmostEqual(np.sum(solution.shaper().sigma()),
                            296.5719143203778)
     fix_random()
     args.iterations = 9
     with CapturedStdout():
         mlak.train(args)
     with CapturedStdout() as out:
         mlak.test(args)
     self.assertEqual(out.getvalue(), "0.0\n")
     solution = dio.load("./out/struggle-sol.p")
     npt.assert_equal(solution.shaper()._classesIdToLabel,
                      ["diamond", "drill", "ripple"])
     npt.assert_equal(solution.model()[0], [256, 10, 3])
     t = solution.model()[1]
     npt.assert_almost_equal([np.sum(
         t[0]), np.sum(t[1]), np.sum(t[2])],
                             [0.3095417, -0.0072933, -0.1675103])
     self.assertAlmostEqual(np.sum(solution.shaper().mu()),
                            205.85431033692913)
     self.assertAlmostEqual(np.sum(solution.shaper().sigma()),
                            296.5719143203778)
예제 #4
0
    def test_logreg_10_train(self):
        X, y = gen_logistic_data()
        dio.save("./out/log.p", {"X": X, "y": y})
        args = Args(data_set="./out/log.p",
                    solution="./out/log-sol.p",
                    topology=[],
                    Lambda="0.1",
                    iterations=1,
                    engine="logreg")
        mlak.set_preferred_engine(args.engine)
        with CapturedStdout():
            mlak.train(args)

        with CapturedStdout() as out:
            mlak.test(args)
        self.assertEqual(out.getvalue(), "0.2666666666666667\n")
        solution = dio.load("./out/log-sol.p")
        npt.assert_equal(solution.shaper()._classesIdToLabel,
                         ["diamond", "drill", "ripple"])
        self.assertEqual(len(solution.model()), 3)
        npt.assert_almost_equal(np.sum(solution.model(), axis=1),
                                [15.9547132, -0.9575446, -4.9745893])
        self.assertAlmostEqual(np.sum(solution.shaper().mu()),
                               205.85431033692913)
        self.assertAlmostEqual(np.sum(solution.shaper().sigma()),
                               296.5719143203778)

        fix_random()
        args.iterations = 9
        with CapturedStdout():
            mlak.train(args)

        with CapturedStdout() as out:
            mlak.test(args)
        self.assertEqual(out.getvalue(), "0.0\n")
        solution = dio.load("./out/log-sol.p")
        npt.assert_equal(solution.shaper()._classesIdToLabel,
                         ["diamond", "drill", "ripple"])
        self.assertEqual(len(solution.model()), 3)
        npt.assert_almost_equal(np.sum(solution.model(), axis=1),
                                [20.5073757, -13.1428356, -10.8690069])
        self.assertAlmostEqual(np.sum(solution.shaper().mu()),
                               205.85431033692913)
        self.assertAlmostEqual(np.sum(solution.shaper().sigma()),
                               296.5719143203778)