Keras 拟合忽略 nan 值
Keras fitting ignoring nan values
我正在训练神经网络进行回归,(1 个输入和 1 个输出)。让我们 x
和 y
分别是通常的输入和输出数据集。
我的问题是 y
数据集(不是 x
)有一些值设置为 nan,所以拟合为 nan。我想知道是否有一个选项可以忽略拟合中的 nan 值,类似于 numpy 函数 np.nanmean
来计算忽略 nans 等的平均值。
如果该选项不存在,我想我必须找到 nan 值并手动删除它们,同时删除 x
中的值对应于y
中的nan位置。
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 作为预处理步骤:
import numpy as np
x = range(2,8)
y = [4,2,np.nan,7,np.nan,np.nan]
for a,b in zip(x,y):
if str(b) == 'nan':
x.remove(a)
y.remove(b)
print x,y
产生 [2, 3, 5] [4, 2, 7]
.
如果您正在使用某种工具预处理数据,从而获得 np.nan
,请检查 API 是否允许您禁用此行为,并花点时间思考这是否是 真的你想要的行为(或者如果你想把它映射到常量,因为你发现你的输入很有价值,即使它们没有标签)。
我正在训练神经网络进行回归,(1 个输入和 1 个输出)。让我们 x
和 y
分别是通常的输入和输出数据集。
我的问题是 y
数据集(不是 x
)有一些值设置为 nan,所以拟合为 nan。我想知道是否有一个选项可以忽略拟合中的 nan 值,类似于 numpy 函数 np.nanmean
来计算忽略 nans 等的平均值。
如果该选项不存在,我想我必须找到 nan 值并手动删除它们,同时删除 x
中的值对应于y
中的nan位置。
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 作为预处理步骤:
import numpy as np
x = range(2,8)
y = [4,2,np.nan,7,np.nan,np.nan]
for a,b in zip(x,y):
if str(b) == 'nan':
x.remove(a)
y.remove(b)
print x,y
产生 [2, 3, 5] [4, 2, 7]
.
如果您正在使用某种工具预处理数据,从而获得 np.nan
,请检查 API 是否允许您禁用此行为,并花点时间思考这是否是 真的你想要的行为(或者如果你想把它映射到常量,因为你发现你的输入很有价值,即使它们没有标签)。