我正在尝试在 Python(Jupyter Notebook)上使用 matplotlib 散点图来创建 t-sne 可视化,不同的点使用不同的颜色。
我很惭愧地承认我大部分都是借用预先编写的代码,所以其中一些细微差别远远超出了我的范围。但是,我遇到了一个我似乎无法解决的 ValueError(即使在查看 Stack Overflow 上询问的类似 ValueErrors 实例的解决方案之后)。
运行散点图(此处的相关代码)返回 ValueError:RGBA 序列的长度应为 3 或 4;尽管这显然是由 ValueError 直接引起的:'c' 参数有 470000 个元素,这与大小为 2500 的 'x' 和 'y' 不一致。
if __name__ == "__main__":
print("Run Y = tsne.tsne(X, no_dims, perplexity) to perform t-SNE on your dataset.")
print("Running example on ECG samples...")
X = np.loadtxt("ecg_test_tsne_randomremoved_tagremoved.txt")
labels = np.loadtxt("ecg_test_tsne_randomremoved_tagremoved.txt")
Y = tsne(X, 2, 50, 20.0)
pylab.scatter(Y[:, 0], Y[:, 1], 20, labels)
pylab.show()
在这里,txt 文件是包含所有数据的文件。完整的代码是 van der Maaten 的 Python 实现,如有必要,可在此处获得。
此外,它指出映射和 RGBA 转换都失败了(相当严重的失败),人们可能会喜欢详细的反馈。
我对这种状态感到非常困惑,因为即使在阅读了其他出现此 ValueError 的解决方案(详见 Stack Overflow)之后,我对如何格式化“标签”以使 c 的尺寸可能匹配 x 和是的。