Python sklearn.manifold.Isomap() Examples
The following are 23
code examples of sklearn.manifold.Isomap().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
sklearn.manifold
, or try the search function
.
Example #1
Source File: utils.py From timeception with GNU General Public License v3.0 | 7 votes |
def learn_manifold(manifold_type, feats, n_components=2): if manifold_type == 'tsne': feats_fitted = manifold.TSNE(n_components=n_components, random_state=0).fit_transform(feats) elif manifold_type == 'isomap': feats_fitted = manifold.Isomap(n_components=n_components).fit_transform(feats) elif manifold_type == 'mds': feats_fitted = manifold.MDS(n_components=n_components).fit_transform(feats) elif manifold_type == 'spectral': feats_fitted = manifold.SpectralEmbedding(n_components=n_components).fit_transform(feats) else: raise Exception('wrong maniford type!') # methods = ['standard', 'ltsa', 'hessian', 'modified'] # feats_fitted = manifold.LocallyLinearEmbedding(n_components=n_components, method=methods[0]).fit_transform(pred) return feats_fitted
Example #2
Source File: utils.py From deep-smoke-machine with BSD 3-Clause "New" or "Revised" License | 7 votes |
def learn_manifold(manifold_type, feats, n_components=2): if manifold_type == 'tsne': feats_fitted = manifold.TSNE(n_components=n_components, random_state=0).fit_transform(feats) elif manifold_type == 'isomap': feats_fitted = manifold.Isomap(n_components=n_components).fit_transform(feats) elif manifold_type == 'mds': feats_fitted = manifold.MDS(n_components=n_components).fit_transform(feats) elif manifold_type == 'spectral': feats_fitted = manifold.SpectralEmbedding(n_components=n_components).fit_transform(feats) else: raise Exception('wrong maniford type!') # methods = ['standard', 'ltsa', 'hessian', 'modified'] # feats_fitted = manifold.LocallyLinearEmbedding(n_components=n_components, method=methods[0]).fit_transform(pred) return feats_fitted
Example #3
Source File: msct_multiatlas_seg.py From spinalcordtoolbox with MIT License | 6 votes |
def compute_reduced_space(self): model = None model_data = np.asarray([dic_slice.im_M.flatten() for dic_slice in self.slices]) if self.param_model.method == 'pca': # PCA model = decomposition.PCA(n_components=self.param_model.k_pca) self.fitted_data = model.fit_transform(model_data) if self.param_model.method == 'isomap': # ISOMAP n_neighbors = self.param_model.n_neighbors_iso n_components = int(model_data.shape[0] * self.param_model.n_compo_iso) model = manifold.Isomap(n_neighbors=n_neighbors, n_components=n_components) self.fitted_data = model.fit_transform(model_data) # save model after bing fitted to data self.fitted_model = model # ------------------------------------------------------------------------------------------------------------------
Example #4
Source File: test_isomap.py From twitter-stock-recommendation with MIT License | 6 votes |
def test_transform(): n_samples = 200 n_components = 10 noise_scale = 0.01 # Create S-curve dataset X, y = datasets.samples_generator.make_s_curve(n_samples, random_state=0) # Compute isomap embedding iso = manifold.Isomap(n_components, 2) X_iso = iso.fit_transform(X) # Re-embed a noisy version of the points rng = np.random.RandomState(0) noise = noise_scale * rng.randn(*X.shape) X_iso2 = iso.transform(X + noise) # Make sure the rms error on re-embedding is comparable to noise_scale assert_less(np.sqrt(np.mean((X_iso - X_iso2) ** 2)), 2 * noise_scale)
Example #5
Source File: test_isomap.py From twitter-stock-recommendation with MIT License | 6 votes |
def test_isomap_simple_grid(): # Isomap should preserve distances when all neighbors are used N_per_side = 5 Npts = N_per_side ** 2 n_neighbors = Npts - 1 # grid of equidistant points in 2D, n_components = n_dim X = np.array(list(product(range(N_per_side), repeat=2))) # distances from each point to all others G = neighbors.kneighbors_graph(X, n_neighbors, mode='distance').toarray() for eigen_solver in eigen_solvers: for path_method in path_methods: clf = manifold.Isomap(n_neighbors=n_neighbors, n_components=2, eigen_solver=eigen_solver, path_method=path_method) clf.fit(X) G_iso = neighbors.kneighbors_graph(clf.embedding_, n_neighbors, mode='distance').toarray() assert_array_almost_equal(G, G_iso)
Example #6
Source File: utils.py From videograph with GNU General Public License v3.0 | 6 votes |
def learn_manifold(manifold_type, feats, n_components=2): if manifold_type == 'tsne': feats_fitted = manifold.TSNE(n_components=n_components, random_state=0).fit_transform(feats) elif manifold_type == 'isomap': feats_fitted = manifold.Isomap(n_components=n_components).fit_transform(feats) elif manifold_type == 'mds': feats_fitted = manifold.MDS(n_components=n_components).fit_transform(feats) elif manifold_type == 'spectral': feats_fitted = manifold.SpectralEmbedding(n_components=n_components).fit_transform(feats) else: raise Exception('wrong maniford type!') # methods = ['standard', 'ltsa', 'hessian', 'modified'] # feats_fitted = manifold.LocallyLinearEmbedding(n_components=n_components, method=methods[0]).fit_transform(pred) return feats_fitted
Example #7
Source File: test_node2vec.py From nodevectors with MIT License | 6 votes |
def test_skl(self): tt = nx.generators.complete_graph(25) ndim = 3 skle = nodevectors.SKLearnEmbedder( manifold.Isomap, n_components=ndim, n_neighbors=3) skle.fit(tt) res_v = skle.predict(9) self.assertTrue(len(res_v) == ndim) # Test save/load fname = 'test_saving' try: skle.save(fname) g2v_l = nodevectors.SKLearnEmbedder.load(fname + '.zip') res_l = g2v_l.predict(9) self.assertTrue(len(res_l) == ndim) np.testing.assert_array_almost_equal(res_l, res_v) finally: os.remove(fname + '.zip')
Example #8
Source File: embedding.py From DeepDIVA with GNU Lesser General Public License v3.0 | 6 votes |
def isomap(features, n_components=2): """ Returns the embedded points for Isomap. Parameters ---------- features: numpy.ndarray contains the input feature vectors. n_components: int number of components to transform the features into Returns ------- embedding: numpy.ndarray x,y(z) points that the feature vectors have been transformed into """ embedding = Isomap(n_components=n_components, n_jobs=-1).fit_transform(features) return embedding
Example #9
Source File: test_isomap.py From Mastering-Elasticsearch-7.0 with MIT License | 6 votes |
def test_transform(): n_samples = 200 n_components = 10 noise_scale = 0.01 # Create S-curve dataset X, y = datasets.samples_generator.make_s_curve(n_samples, random_state=0) # Compute isomap embedding iso = manifold.Isomap(n_components, 2) X_iso = iso.fit_transform(X) # Re-embed a noisy version of the points rng = np.random.RandomState(0) noise = noise_scale * rng.randn(*X.shape) X_iso2 = iso.transform(X + noise) # Make sure the rms error on re-embedding is comparable to noise_scale assert_less(np.sqrt(np.mean((X_iso - X_iso2) ** 2)), 2 * noise_scale)
Example #10
Source File: test_isomap.py From megaman with BSD 2-Clause "Simplified" License | 5 votes |
def test_isomap_with_sklearn(): N = 10 X, color = datasets.samples_generator.make_s_curve(N, random_state=0) n_components = 2 n_neighbors = 3 knn = NearestNeighbors(n_neighbors + 1).fit(X) # Assign the geometry matrix to get the same answer since sklearn using k-neighbors instead of radius-neighbors g = geom.Geometry(X) g.set_adjacency_matrix(knn.kneighbors_graph(X, mode = 'distance')) # test Isomap with sklearn sk_Y_iso = manifold.Isomap(n_neighbors, n_components, eigen_solver = 'arpack').fit_transform(X) mm_Y_iso = iso.isomap(g, n_components) assert(_check_with_col_sign_flipping(sk_Y_iso, mm_Y_iso, 0.05))
Example #11
Source File: test_isomap.py From twitter-stock-recommendation with MIT License | 5 votes |
def test_isomap_clone_bug(): # regression test for bug reported in #6062 model = manifold.Isomap() for n_neighbors in [10, 15, 20]: model.set_params(n_neighbors=n_neighbors) model.fit(np.random.rand(50, 2)) assert_equal(model.nbrs_.n_neighbors, n_neighbors)
Example #12
Source File: test_isomap.py From twitter-stock-recommendation with MIT License | 5 votes |
def test_pipeline(): # check that Isomap works fine as a transformer in a Pipeline # only checks that no error is raised. # TODO check that it actually does something useful X, y = datasets.make_blobs(random_state=0) clf = pipeline.Pipeline( [('isomap', manifold.Isomap()), ('clf', neighbors.KNeighborsClassifier())]) clf.fit(X, y) assert_less(.9, clf.score(X, y))
Example #13
Source File: test_isomap.py From twitter-stock-recommendation with MIT License | 5 votes |
def test_isomap_reconstruction_error(): # Same setup as in test_isomap_simple_grid, with an added dimension N_per_side = 5 Npts = N_per_side ** 2 n_neighbors = Npts - 1 # grid of equidistant points in 2D, n_components = n_dim X = np.array(list(product(range(N_per_side), repeat=2))) # add noise in a third dimension rng = np.random.RandomState(0) noise = 0.1 * rng.randn(Npts, 1) X = np.concatenate((X, noise), 1) # compute input kernel G = neighbors.kneighbors_graph(X, n_neighbors, mode='distance').toarray() centerer = preprocessing.KernelCenterer() K = centerer.fit_transform(-0.5 * G ** 2) for eigen_solver in eigen_solvers: for path_method in path_methods: clf = manifold.Isomap(n_neighbors=n_neighbors, n_components=2, eigen_solver=eigen_solver, path_method=path_method) clf.fit(X) # compute output kernel G_iso = neighbors.kneighbors_graph(clf.embedding_, n_neighbors, mode='distance').toarray() K_iso = centerer.fit_transform(-0.5 * G_iso ** 2) # make sure error agrees reconstruction_error = np.linalg.norm(K - K_iso) / Npts assert_almost_equal(reconstruction_error, clf.reconstruction_error())
Example #14
Source File: test_manifold.py From pandas-ml with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_objectmapper(self): df = pdml.ModelFrame([]) self.assertIs(df.manifold.LocallyLinearEmbedding, manifold.LocallyLinearEmbedding) self.assertIs(df.manifold.Isomap, manifold.Isomap) self.assertIs(df.manifold.MDS, manifold.MDS) self.assertIs(df.manifold.SpectralEmbedding, manifold.SpectralEmbedding) self.assertIs(df.manifold.TSNE, manifold.TSNE)
Example #15
Source File: test_isomap.py From megaman with BSD 2-Clause "Simplified" License | 5 votes |
def test_isomap_simple_grid(): # Isomap should preserve distances when all neighbors are used N_per_side = 5 Npts = N_per_side ** 2 radius = 10 # grid of equidistant points in 2D, n_components = n_dim X = np.array(list(product(range(N_per_side), repeat=2))) # distances from each point to all others G = squareform(pdist(X)) g = geom.Geometry(adjacency_kwds = {'radius':radius}) for eigen_solver in EIGEN_SOLVERS: clf = iso.Isomap(n_components = 2, eigen_solver = eigen_solver, geom=g) clf.fit(X) G_iso = squareform(pdist(clf.embedding_)) assert_array_almost_equal(G, G_iso)
Example #16
Source File: test_isomap.py From Mastering-Elasticsearch-7.0 with MIT License | 5 votes |
def test_isomap_simple_grid(): # Isomap should preserve distances when all neighbors are used N_per_side = 5 Npts = N_per_side ** 2 n_neighbors = Npts - 1 # grid of equidistant points in 2D, n_components = n_dim X = np.array(list(product(range(N_per_side), repeat=2))) # distances from each point to all others G = neighbors.kneighbors_graph(X, n_neighbors, mode='distance').toarray() for eigen_solver in eigen_solvers: for path_method in path_methods: clf = manifold.Isomap(n_neighbors=n_neighbors, n_components=2, eigen_solver=eigen_solver, path_method=path_method) clf.fit(X) G_iso = neighbors.kneighbors_graph(clf.embedding_, n_neighbors, mode='distance').toarray() assert_array_almost_equal(G, G_iso)
Example #17
Source File: test_isomap.py From Mastering-Elasticsearch-7.0 with MIT License | 5 votes |
def test_isomap_reconstruction_error(): # Same setup as in test_isomap_simple_grid, with an added dimension N_per_side = 5 Npts = N_per_side ** 2 n_neighbors = Npts - 1 # grid of equidistant points in 2D, n_components = n_dim X = np.array(list(product(range(N_per_side), repeat=2))) # add noise in a third dimension rng = np.random.RandomState(0) noise = 0.1 * rng.randn(Npts, 1) X = np.concatenate((X, noise), 1) # compute input kernel G = neighbors.kneighbors_graph(X, n_neighbors, mode='distance').toarray() centerer = preprocessing.KernelCenterer() K = centerer.fit_transform(-0.5 * G ** 2) for eigen_solver in eigen_solvers: for path_method in path_methods: clf = manifold.Isomap(n_neighbors=n_neighbors, n_components=2, eigen_solver=eigen_solver, path_method=path_method) clf.fit(X) # compute output kernel G_iso = neighbors.kneighbors_graph(clf.embedding_, n_neighbors, mode='distance').toarray() K_iso = centerer.fit_transform(-0.5 * G_iso ** 2) # make sure error agrees reconstruction_error = np.linalg.norm(K - K_iso) / Npts assert_almost_equal(reconstruction_error, clf.reconstruction_error())
Example #18
Source File: msct_multiatlas_seg.py From spinalcordtoolbox with MIT License | 5 votes |
def __init__(self, param_model=None, param_data=None, param=None): self.param_model = param_model if param_model is not None else ParamModel() self.param_data = param_data if param_data is not None else ParamData() self.param = param if param is not None else Param() self.slices = [] # list of Slice() : Model dictionary self.mean_image = None self.intensities = None self.fitted_model = None # PCA or Isomap model self.fitted_data = None # ------------------------------------------------------------------------------------------------------------------ # FUNCTIONS USED TO COMPUTE THE MODEL # ------------------------------------------------------------------------------------------------------------------
Example #19
Source File: test_isomap.py From Mastering-Elasticsearch-7.0 with MIT License | 5 votes |
def test_isomap_clone_bug(): # regression test for bug reported in #6062 model = manifold.Isomap() for n_neighbors in [10, 15, 20]: model.set_params(n_neighbors=n_neighbors) model.fit(np.random.rand(50, 2)) assert_equal(model.nbrs_.n_neighbors, n_neighbors)
Example #20
Source File: test_isomap.py From Mastering-Elasticsearch-7.0 with MIT License | 5 votes |
def test_pipeline(): # check that Isomap works fine as a transformer in a Pipeline # only checks that no error is raised. # TODO check that it actually does something useful X, y = datasets.make_blobs(random_state=0) clf = pipeline.Pipeline( [('isomap', manifold.Isomap()), ('clf', neighbors.KNeighborsClassifier())]) clf.fit(X, y) assert_less(.9, clf.score(X, y))
Example #21
Source File: manifold_learning.py From cv with MIT License | 4 votes |
def main(): digits = load_digits() X = digits.data y = digits.target num_classes = np.unique(y).shape[0] plot_digits(X) #TSNE #Barnes-Hut: O(d NlogN) where d is dim and N is the number of samples #Exact: O(d N^2) t0 = time() tsne = manifold.TSNE(n_components = 2, init = 'pca', method = 'barnes_hut', verbose = 1) X_tsne = tsne.fit_transform(X) t1 = time() print 't-SNE: %.2f sec' %(t1-t0) tsne.get_params() plt.figure(2) for k in range(num_classes): plt.plot(X_tsne[y==k,0], X_tsne[y==k,1],'o') plt.title('t-SNE embedding of digits dataset') plt.xlabel('X1') plt.ylabel('X2') axes = plt.gca() axes.set_xlim([X_tsne[:,0].min()-1,X_tsne[:,0].max()+1]) axes.set_ylim([X_tsne[:,1].min()-1,X_tsne[:,1].max()+1]) plt.show() #ISOMAP #1. Nearest neighbors search: O(d log k N log N) #2. Shortest path graph search: O(N^2(k+log(N)) #3. Partial eigenvalue decomposition: O(dN^2) t0 = time() isomap = manifold.Isomap(n_neighbors = 5, n_components = 2) X_isomap = isomap.fit_transform(X) t1 = time() print 'Isomap: %.2f sec' %(t1-t0) isomap.get_params() plt.figure(3) for k in range(num_classes): plt.plot(X_isomap[y==k,0], X_isomap[y==k,1], 'o', label=str(k), linewidth = 2) plt.title('Isomap embedding of the digits dataset') plt.xlabel('X1') plt.ylabel('X2') plt.show() #Use KD-tree to find k-nearest neighbors to a query image kdt = KDTree(X_isomap) Q = np.array([[-160, -30],[-102, 14]]) kdt_dist, kdt_idx = kdt.query(Q,k=20) plot_digits(X[kdt_idx.ravel(),:])
Example #22
Source File: features.py From AlphaPy with Apache License 2.0 | 4 votes |
def create_isomap_features(features, model): r"""Create Isomap features. Parameters ---------- features : numpy array The input features. model : alphapy.Model The model object with the Isomap parameters. Returns ------- ifeatures : numpy array The Isomap features. inames : list The Isomap feature names. Notes ----- Isomaps are very memory-intensive. Your process will be killed if you run out of memory. References ---------- You can find more information on Principal Component Analysis here [ISO]_. .. [ISO] http://scikit-learn.org/stable/modules/manifold.html#isomap """ logger.info("Creating Isomap Features") # Extract model parameters iso_components = model.specs['iso_components'] iso_neighbors = model.specs['iso_neighbors'] n_jobs = model.specs['n_jobs'] # Log model parameters logger.info("Isomap Components : %d", iso_components) logger.info("Isomap Neighbors : %d", iso_neighbors) # Generate Isomap features model = Isomap(n_neighbors=iso_neighbors, n_components=iso_components, n_jobs=n_jobs) ifeatures = model.fit_transform(features) inames = [USEP.join(['isomap', str(i+1)]) for i in range(iso_components)] # Return new Isomap features logger.info("Isomap Feature Count : %d", ifeatures.shape[1]) return ifeatures, inames # # Function create_tsne_features #
Example #23
Source File: testing_and_visualisation.py From ImageSetCleaner with GNU General Public License v3.0 | 4 votes |
def see_iso_map(bottlenecks, labels, suptitle=None): """ :param bottlenecks: :param labels: :param suptitle: String to add as plot suptitles :return: Nothing, will just plot a scatter plot to show the distribution of our data after dimensionality reduction. """ n_samples, n_features = bottlenecks.shape n_neighbors = 25 n_components = 2 start_index_outlier = np.where(labels == 1)[0][0] alpha_inlier = 0.25 B_iso = manifold.Isomap(n_neighbors, n_components).fit_transform(bottlenecks) B_pca = decomposition.TruncatedSVD(n_components=2).fit_transform(bottlenecks) B_lle = manifold.LocallyLinearEmbedding(n_neighbors, n_components, method='standard').fit_transform(bottlenecks) B_spec = manifold.SpectralEmbedding(n_components=n_components, random_state=42, eigen_solver='arpack').fit_transform(bottlenecks) plt.figure() plt.subplot(221) plt.scatter(B_iso[:start_index_outlier, 0], B_iso[:start_index_outlier, 1], marker='o', c='b', alpha=alpha_inlier) plt.scatter(B_iso[start_index_outlier:, 0], B_iso[start_index_outlier:, 1], marker='^', c='k') plt.title("Isomap projection") plt.subplot(222) inlier_scatter = plt.scatter(B_lle[:start_index_outlier, 0], B_lle[:start_index_outlier, 1], marker='o', c='b', alpha=alpha_inlier) outlier_scatter = plt.scatter(B_lle[start_index_outlier:, 0], B_lle[start_index_outlier:, 1], marker='^', c='k') plt.legend([inlier_scatter, outlier_scatter], ['Inliers', 'Outliers'], loc='lower left') plt.title("Locally Linear Embedding") plt.subplot(223) plt.scatter(B_pca[:start_index_outlier, 0], B_pca[:start_index_outlier, 1], marker='o', c='b', alpha=alpha_inlier) plt.scatter(B_pca[start_index_outlier:, 0], B_pca[start_index_outlier:, 1], marker='^', c='k') plt.title("Principal Components projection") plt.subplot(224) plt.scatter(B_spec[:start_index_outlier, 0], B_spec[:start_index_outlier, 1], marker='o', c='b', alpha=alpha_inlier) plt.scatter(B_spec[start_index_outlier:, 0], B_spec[start_index_outlier:, 1], marker='^', c='k') plt.title("Spectral embedding") if suptitle: plt.suptitle(suptitle)