Spaces:
Runtime error
Runtime error
| import umap | |
| import hdbscan | |
| import copy | |
| class UMAPReducer: | |
| def __init__(self, options={}): | |
| # set options with defaults | |
| options = {'n_components': 3, 'spread': 1, 'min_dist': 0.1, 'n_neighbors': 15, | |
| 'metric': 'hellinger', 'min_cluster_size': 60, 'min_samples': 15, **options} | |
| print(options) | |
| self.reducer = umap.UMAP( | |
| n_neighbors=options['n_neighbors'], | |
| min_dist=options['min_dist'], | |
| n_components=options['n_components'], | |
| metric=options['metric'], | |
| verbose=True) | |
| # cluster init | |
| self.clusterer = hdbscan.HDBSCAN( | |
| min_cluster_size=options['min_cluster_size'], | |
| min_samples=options['min_samples'], | |
| allow_single_cluster=True | |
| ) | |
| self.cluster_params = copy.deepcopy(options) | |
| def setParams(self, options): | |
| # update params | |
| self.cluster_params = {**self.cluster_params, **options} | |
| def clusterAnalysis(self, data): | |
| clusters = self.clusterer.fit(data) | |
| return clusters | |
| def embed(self, data): | |
| result = self.reducer.fit_transform(data) | |
| return result | |