尝试在我自己的数据集(约一百万个样本)中运行以下示例以及来自 Scikit-learn 的示例时,出现以下错误:
plt.scatter(data_.T[0][c_exemplars], data_.T[1][c_exemplars], c=palette[i], **plot_kwds)
IndexError: list index out of range
修改后的代码如下:
reducer = umap.UMAP()
data_ = reducer.fit_transform(data)
sns.set_context('poster')
sns.set_style('white')
sns.set_color_codes()
plot_kwds={'alpha':0.25, 's':60, 'linewidths':0}
palette = sns.color_palette('deep', 12)
clusterer = hdbscan.HDBSCAN(min_cluster_size=15, metric='manhattan').fit(data_)
tree = clusterer.condensed_tree_
plt.scatter(data_.T[0], data_.T[1], c='grey', **plot_kwds)
for i, c in enumerate(tree._select_clusters()):
c_exemplars = self.exemplars(c, tree)
plt.scatter(data_.T[0][c_exemplars], data_.T[1][c_exemplars], c=palette[i], **plot_kwds)
plt.plot()
该self.exemplars()
功能与示例中实现的功能完全相同。显然,一旦集群数量约为 8k,我需要更多颜色。我怎么能管理它?