【发布时间】:2016-10-11 09:37:06
【问题描述】:
我正在训练一个神经网络来进行回归,(1 个输入和 1 个输出)。让我们将x 和y 分别作为常用的输入和输出数据集。
我的问题是y 数据集(不是x)有一些值设置为nan,所以拟合到nan。我想知道是否有一个选项可以忽略拟合中的 nan 值,类似于 numpy 函数 np.nanmean 来计算忽略 nans 的平均值等等。
如果该选项不存在,我想我必须找到 nan 值并手动删除它们,同时删除 x 中与 @ 中的 nan 位置相对应的值987654327@。
x y
2 4
3 2
4 np.nan
5 7
6 np.nan
7 np.nan
在这个简单的示例中,应删除 y 列中的 nan 值,同时删除 x 列中的相应值 (4, 6, 7)。
谢谢。
编辑:好的,我在过滤 nans 时遇到问题,我会这样做:
for index, x in np.ndenumerate(a):
if x == np.nan:
print index, x
它不打印任何东西,我确信有 nan 值...
编辑(自我回答):好的,我找到了一种本地化 nans 的方法:
for index, x in np.ndenumerate(a):
if x != x:
print index, x
【问题讨论】:
-
NAN 真的相关吗?否则,只需将它们从您的训练数据中删除或将它们映射到特定常量(如 0 或 -1)。更容易,但结果与您的提议相同。
-
是的,我是这么想的,但是两列中的值都应该被删除,所以你必须找到数组中 nans 的位置,然后删除它们。然后你必须在 x 列中找到相应的位置并删除它们。
-
我没发现问题?如果你在 y 的第 n 行找到 NAN,你也会在 x 的第 n 行删除它。
-
原始问题已编辑。
标签: python numpy neural-network keras