我正在构造一个自动编码器,将燃烧数据集的维数从17降到2。你知道吗
如上图所示,有一些趋势-你可以看到大约三条线。我想将数据(无监督的)分成行簇,以便将来的测试数据可以与之关联,我正在努力找到一种方法来做到这一点。你知道吗
我已经把DBSCAN看作一种层次聚类方法(例如ashere)。我不确定它是否合适,但我的代码在这一点上失败了:
palette = sns.color_palette()
cluster_colors = [sns.desaturate(palette[col], sat)
if col >= 0 else (0.5, 0.5, 0.5) for col, sat in
zip(clusterer.labels_, clusterer.probabilities_)]
plt.scatter(z[0], z[1], c=cluster_colors, **plot_kwds)
其中z[0]
和z[1]
是聚集数据的两个维度。错误是:
'ValueError: 'c' argument has 100 elements, which is not acceptable for use with 'x' with size 2, 'y' with size 2.'
如果你有其他建议,请告诉我。此外,我的数据很大(案例中大于100万点)。你知道吗
您需要一次绘制一个簇。你知道吗
很遗憾,Matplotlib不接受颜色数组。你知道吗
因此它抱怨
c
参数。你知道吗为什么要缩小到二维?你试过把原来的17维空间聚类吗?在2维,使用非线性映射,您可能损失了太多。你知道吗
相关问题 更多 >
编程相关推荐