Exemplo n.º 1
0
    def test_transformed_domain_does_not_pickle_data(self):
        iris = self.iris
        pca = PCA(n_components=2)(iris)
        pca_iris = pca(iris)
        pca_iris2 = Table(pca_iris.domain, iris)

        pca_iris2 = pickle.loads(pickle.dumps(pca_iris))
        self.assertIsNone(pca_iris2.domain[0].compute_value.transformed)
Exemplo n.º 2
0
    def test_transformed_domain_does_not_pickle_data(self):
        iris = self.iris
        pca = PCA(n_components=2)(iris)
        pca_iris = pca(iris)
        pca_iris2 = Table(pca_iris.domain, iris)

        pca_iris2 = pickle.loads(pickle.dumps(pca_iris))
        self.assertIsNone(pca_iris2.domain[0].compute_value.transformed)
Exemplo n.º 3
0
 def __pca_test_helper(self, data, n_com, min_xpl_var):
     pca = PCA(n_components=n_com)
     pca_model = pca(data)
     pca_xpl_var = np.sum(pca_model.explained_variance_ratio_)
     self.assertGreaterEqual(pca_xpl_var + 1e-6, min_xpl_var)
     self.assertEqual(n_com, pca_model.n_components)
     self.assertEqual((n_com, data.X.shape[1]), pca_model.components_.shape)
     proj = np.dot(data.X - pca_model.mean_, pca_model.components_.T)
     np.testing.assert_almost_equal(pca_model(data).X, proj)
Exemplo n.º 4
0
 def __pca_test_helper(self, data, n_com, min_xpl_var):
     pca = PCA(n_components=n_com)
     pca_model = pca(data)
     pca_xpl_var = np.sum(pca_model.explained_variance_ratio_)
     self.assertGreaterEqual(pca_xpl_var + 1e-6, min_xpl_var)
     self.assertEqual(n_com, pca_model.n_components)
     self.assertEqual((n_com, data.X.shape[1]), pca_model.components_.shape)
     proj = np.dot(data.X - pca_model.mean_, pca_model.components_.T)
     np.testing.assert_almost_equal(pca_model(data).X, proj)
Exemplo n.º 5
0
    def test_compute_value(self):
        iris = self.iris
        pca = PCA(n_components=2)(iris)
        pca_iris = pca(iris)
        pca_iris2 = Table(pca_iris.domain, iris)
        np.testing.assert_almost_equal(pca_iris.X, pca_iris2.X)
        np.testing.assert_equal(pca_iris.Y, pca_iris2.Y)

        pca_iris3 = pickle.loads(pickle.dumps(pca_iris))
        np.testing.assert_almost_equal(pca_iris.X, pca_iris3.X)
        np.testing.assert_equal(pca_iris.Y, pca_iris3.Y)
Exemplo n.º 6
0
    def test_compute_value(self):
        iris = self.iris
        pca = PCA(n_components=2)(iris)
        pca_iris = pca(iris)
        pca_iris2 = Table(pca_iris.domain, iris)
        np.testing.assert_almost_equal(pca_iris.X, pca_iris2.X)
        np.testing.assert_equal(pca_iris.Y, pca_iris2.Y)

        pca_iris3 = pickle.loads(pickle.dumps(pca_iris))
        np.testing.assert_almost_equal(pca_iris.X, pca_iris3.X)
        np.testing.assert_equal(pca_iris.Y, pca_iris3.Y)
Exemplo n.º 7
0
 def __ipca_test_helper(self, data, n_com, min_xpl_var):
     pca = IncrementalPCA(n_components=n_com)
     pca_model = pca(data[::2])
     pca_xpl_var = np.sum(pca_model.explained_variance_ratio_)
     self.assertGreaterEqual(pca_xpl_var + 1e-6, min_xpl_var)
     self.assertEqual(n_com, pca_model.n_components)
     self.assertEqual((n_com, data.X.shape[1]), pca_model.components_.shape)
     proj = np.dot(data.X - pca_model.mean_, pca_model.components_.T)
     np.testing.assert_almost_equal(pca_model(data).X, proj)
     pc1_ipca = pca_model.components_[0]
     self.assertAlmostEqual(np.linalg.norm(pc1_ipca), 1)
     pc1_pca = PCA(n_components=n_com)(data).components_[0]
     self.assertAlmostEqual(np.linalg.norm(pc1_pca), 1)
     self.assertNotAlmostEqual(abs(pc1_ipca.dot(pc1_pca)), 1, 2)
     pc1_ipca = pca_model.partial_fit(data[1::2]).components_[0]
     self.assertAlmostEqual(abs(pc1_ipca.dot(pc1_pca)), 1, 4)
Exemplo n.º 8
0
 def __ipca_test_helper(self, data, n_com, min_xpl_var):
     pca = IncrementalPCA(n_components=n_com)
     pca_model = pca(data[::2])
     pca_xpl_var = np.sum(pca_model.explained_variance_ratio_)
     self.assertGreaterEqual(pca_xpl_var + 1e-6, min_xpl_var)
     self.assertEqual(n_com, pca_model.n_components)
     self.assertEqual((n_com, data.X.shape[1]), pca_model.components_.shape)
     proj = np.dot(data.X - pca_model.mean_, pca_model.components_.T)
     np.testing.assert_almost_equal(pca_model(data).X, proj)
     pc1_ipca = pca_model.components_[0]
     self.assertAlmostEqual(np.linalg.norm(pc1_ipca), 1)
     pc1_pca = PCA(n_components=n_com)(data).components_[0]
     self.assertAlmostEqual(np.linalg.norm(pc1_pca), 1)
     self.assertNotAlmostEqual(abs(pc1_ipca.dot(pc1_pca)), 1, 2)
     pc1_ipca = pca_model.partial_fit(data[1::2]).components_[0]
     self.assertAlmostEqual(abs(pc1_ipca.dot(pc1_pca)), 1, 4)