【发布时间】:2016-04-05 01:13:06
【问题描述】:
我正在使用 t-SNE python 实现对X 进行降维,其中包含 100 个实例,每个实例由 1024 个参数描述,用于 cnn 可视化。
X.shape = [100, 1024]
X.dtype = float32
当我跑步时:
Y = tsne.tsne(X)
在 tsne.py 第 23 行弹出第一个警告:
RuntimeWarning:在日志中遇到除以零 H = Math.log(sumP) + beta * Math.sum(D * P) / sumP
然后在以下几行中还有更多类似这样的警告:
RuntimeWarning: 除法中遇到无效值
最后我在处理过程中的每次迭代后得到这个结果:
迭代 xyz : 错误是 nan
代码结束时没有“错误”,最后我得到一个空散点图。
编辑:
-> 我已经尝试过使用不同的数据集,并且效果很好。但是我也需要它来处理我的第一组(似乎会引起问题的那个)
问题:
有谁知道这可能是什么原因造成的?有解决办法吗?
【问题讨论】:
-
问题在于,由于它一开始就使用 PCA,因此它至少需要数据集中的样本数量与您拥有的特征数量相同。您能否为您的数据集获取更多样本?
-
它是用于医疗应用的,所以我无法轻易获得更多样本。我通过添加一个小值(例如 0.0001)来避免在导致 nan 的行上除以 0 来解决此问题。
-
我收到了同样的错误消息,但我有数千个样本(我一直在尝试子集)并且只有 39 个功能......
-
使用创建者网站的 t-sne 实现时出现“错误是 nan”问题,但使用 sklearn.manifold.TSNE 没有问题
标签: python-2.7 nan dimensionality-reduction