def test_torgerson(self): data = self.ionosphere[::5] dis = Euclidean(data) e1 = torgerson(dis, eigen_solver="auto") e2 = torgerson(dis, eigen_solver="lapack") e3 = torgerson(dis, eigen_solver="arpack") np.testing.assert_almost_equal(np.abs(e1), np.abs(e2)) np.testing.assert_almost_equal(np.abs(e2), np.abs(e3)) with self.assertRaises(ValueError): torgerson(dis, eigen_solver="madness")
def test_torgerson(self): data = self.ionosphere[::5] dis = Euclidean(data) e1 = torgerson(dis, eigen_solver="auto") e2 = torgerson(dis, eigen_solver="lapack") e3 = torgerson(dis, eigen_solver="arpack") np.testing.assert_almost_equal(np.abs(e1), np.abs(e2)) np.testing.assert_almost_equal(np.abs(e2), np.abs(e3)) with self.assertRaises(ValueError): torgerson(dis, eigen_solver="madness")
def __invalidate_embedding(self, initialization=PCA): def jitter_coord(part): span = np.max(part) - np.min(part) part += np.random.uniform(-span / 20, span / 20, len(part)) # reset/invalidate the MDS embedding, to the default initialization # (Random or PCA), restarting the optimization if necessary. state = self.__state if self.__update_loop is not None: self.__set_update_loop(None) if self.effective_matrix is None: self.graph.reset_graph() return X = self.effective_matrix if initialization == OWMDS.PCA: self.embedding = torgerson(X) elif initialization == OWMDS.Random: self.embedding = np.random.rand(len(X), 2) else: jitter_coord(self.embedding[:, 0]) jitter_coord(self.embedding[:, 1]) self.setup_plot() # restart the optimization if it was interrupted. if state == OWMDS.Running: self.__start()
def __invalidate_embedding(self, initialization=PCA): def jitter_coord(part): span = np.max(part) - np.min(part) part += np.random.uniform(-span / 20, span / 20, len(part)) # reset/invalidate the MDS embedding, to the default initialization # (Random or PCA), restarting the optimization if necessary. state = self.__state if self.__update_loop is not None: self.__set_update_loop(None) if self.effective_matrix is None: self.graph.reset_graph() return X = self.effective_matrix if initialization == OWMDS.PCA: self.embedding = torgerson(X) elif initialization == OWMDS.Random: self.embedding = np.random.rand(len(X), 2) else: jitter_coord(self.embedding[:, 0]) jitter_coord(self.embedding[:, 1]) self.setup_plot() # restart the optimization if it was interrupted. if state == OWMDS.Running: self.__start()
def __invalidate_embedding(self): # reset/invalidate the MDS embedding, to the default initialization # (Random or PCA), restarting the optimization if necessary. if self.embedding is None: return state = self.__state if self.__update_loop is not None: self.__set_update_loop(None) X = self.effective_matrix if self.initialization == OWMDS.PCA: self.embedding = torgerson(X) else: self.embedding = np.random.rand(len(X), 2) self._update_plot() # restart the optimization if it was interrupted. if state == OWMDS.Running: self.__start()
def __invalidate_embedding(self): # reset/invalidate the MDS embedding, to the default initialization # (Random or PCA), restarting the optimization if necessary. if self.embedding is None: return state = self.__state if self.__update_loop is not None: self.__set_update_loop(None) X = self.effective_matrix if self.initialization == OWMDS.PCA: self.embedding = torgerson(X) else: self.embedding = np.random.rand(len(X), 2) self._update_plot() # restart the optimization if it was interrupted. if state == OWMDS.Running: self.__start()
def setUpClass(cls): cls.data = Table("iris") cls.distances = Euclidean(cls.data) cls.init = torgerson(cls.distances) cls.args = (cls.distances, 300, 25, 0, cls.init)