params.append(curr_params) # fit model currtime = time.time() model = SparseComponentAnalysis( n_components=n_components, max_iter=max_iter, gamma=gamma, verbose=10, tol=tol, ) S_train = model.fit_transform(X_train) train_time = time.time() - currtime print(f"{train_time:.3f} elapsed to train model.") S_test = model.transform(X_test) # save model fit models_by_params[curr_params] = model S_train_by_params[curr_params] = S_train S_test_by_params[curr_params] = S_test # save metrics metrics = compute_metrics(model, X_train, X_test) metrics["sparsity_param"] = gamma metrics["sparsity_level"] = gamma metrics["n_components"] = n_components metrics["train_time"] = train_time metrics["method"] = method metric_rows.append(metrics) print(f"Component L0 ratio: {metrics['p_nonzero']}")
np.random.seed(seed) currtime = time.time() pca = PCA(n_components=n_components) X_train_pca = pca.fit_transform(X_train) print(f"{time.time() - currtime:.3f} elapsed to fit PCA model.") X_test_pca = pca.transform(X_test) #%% np.random.seed(seed + 2) currtime = time.time() sca = SparseComponentAnalysis(n_components=n_components, max_iter=30, gamma=50, verbose=10) X_train_sca = sca.fit_transform(X_train) print(f"{time.time() - currtime:.3f} elapsed for SCA.") X_test_sca = sca.transform(X_test) #%% neuron_types = sequencing_df.index.get_level_values("Neuron_type").values neuron_type_palette = dict(zip(np.unique(neuron_types), cc.glasbey_light)) y_train = index_train.get_level_values(level="Neuron_type").values y_test = index_test.get_level_values(level="Neuron_type").values pg = pairplot(X_train_sca[:, :4], labels=y_train, palette=neuron_type_palette, diag_kind=None) pg._legend.remove() pg = pairplot(X_test_sca[:, :4],
curr_params = (n_components, gamma) params.append(curr_params) # fit model currtime = time.time() sca = SparseComponentAnalysis( n_components=n_components, max_iter=max_iter, gamma=gamma, verbose=10, tol=tol, ) S_train = sca.fit_transform(X_train) print(f"{time.time() - currtime:.3f} elapsed to train SCA model.") S_test = sca.transform(X_test) # save model fit models_by_params[curr_params] = sca S_train_by_params[curr_params] = S_train # save metrics metrics = compute_metrics(sca) metrics["gamma"] = gamma metrics["n_components"] = n_components metric_rows.append(metrics) print("\n\n\n") #%% n_subsamples = 5