Пример #1
0
    def test_predict_different_inputs(self):
        ojanet = algorithms.Oja(minimized_data_size=1,
                                verbose=False,
                                step=0.01)

        data = np.array([[1, 2, 3]]).T
        target = np.array([[1, 2, 3]]).T

        ojanet.train(data, epsilon=0.01, epochs=100)
        self.assertInvalidVectorPred(ojanet, data.ravel(), target, decimal=2)
Пример #2
0
    def test_oja_minimization(self):
        ojanet = algorithms.Oja(minimized_data_size=1,
                                step=0.01,
                                weights=np.ones((2, 1)) * 0.1,
                                verbose=False)

        ojanet.train(self.data, epsilon=1e-5)
        minimized_data = ojanet.predict(self.data)
        self.assertTrue(np.all(np.round(minimized_data, 2) == self.result))

        reconstructed = ojanet.reconstruct(minimized_data)
        self.assertTrue(np.allclose(reconstructed, self.data))
Пример #3
0
    def test_reconstruct_different_inputs(self):
        ojanet = algorithms.Oja(minimized_data_size=1,
                                verbose=False,
                                step=0.01)

        data = np.array([[1, 2, 3]]).T
        target = np.array([[1, 2, 3]]).T
        input_vector = data.ravel()

        ojanet.train(data, epsilon=0.01, epochs=100)
        test_vectors = vectors_for_testing(input_vector)

        for i, test_vector in enumerate(test_vectors, start=1):
            np.testing.assert_array_almost_equal(
                ojanet.reconstruct(test_vector), target, decimal=1)
Пример #4
0
    def test_oja_minimization(self):
        ojanet = algorithms.Oja(minimized_data_size=1,
                                step=0.01,
                                weights=np.ones((2, 1)) * 0.1,
                                verbose=False)

        ojanet.train(self.data, epsilon=1e-5, epochs=100)
        minimized_data = ojanet.predict(self.data)
        np.testing.assert_array_almost_equal(minimized_data,
                                             self.result,
                                             decimal=2)

        reconstructed = ojanet.reconstruct(minimized_data)
        np.testing.assert_array_almost_equal(reconstructed,
                                             self.data,
                                             decimal=3)
Пример #5
0
    def test_oja_exceptions(self):
        ojanet = algorithms.Oja(minimized_data_size=1, step=0.01,
                                verbose=False)

        with self.assertRaises(ValueError):
            # Can't reconstruct without training
            ojanet.reconstruct(np.random.random((4, 1)))

        with self.assertRaises(ValueError):
            # Can't predict without training
            ojanet.predict(np.random.random((4, 1)))

        ojanet.train(self.data, epsilon=1e-5)

        with self.assertRaises(ValueError):
            # Invalid #feature for reconstruct
            ojanet.reconstruct(np.random.random((3, 3)))

        with self.assertRaises(ValueError):
            # Invalid #feature for train
            ojanet.train(np.random.random((4, 10)))
Пример #6
0
 def test_train_different_inputs(self):
     self.assertInvalidVectorTrain(
         algorithms.Oja(minimized_data_size=1, verbose=False, step=0.01),
         np.array([1, 2, 3]))
Пример #7
0
a = oya(w_start, y_start1, iris_data, 4)
a = np.array(a)
check = matrixmult(np.array(a[0]), np.array(a[1]))
check = np.array(check)
iris_data = np.array(iris_data)

check_t = trans(check)
print('final results(iris)')
print(check_t)
print('iris data')
print(iris_data)
print('decompressing(iris)')
print(check_t - iris_data)

iris_data = np.array(iris_data)
ojanet = algorithms.Oja(minimized_data_size=1, step=0.01, verbose=False)

ojanet.train(iris_data, epochs=100)
minimized = ojanet.predict(iris_data)
print('Minimized(iris, neupy)', minimized)
print('Reconstruct(iris)', ojanet.reconstruct(minimized))

wine_data = np.array(wine_data)

ojanet = algorithms.Oja(minimized_data_size=1, step=0.01, verbose=False)

ojanet.train(wine_data, epochs=100)
minimized = ojanet.predict(wine_data)
print('Minimized(wine, neupy)', minimized)
print('Reconstruct(wine)', ojanet.reconstruct(minimized))