各向异性 GRNN 返回所有 sigma 等于 NaN使用 pyGRNN

问题描述

GRNN (维基百科之后) 代表了神经网络中基于非参数回归的改进技术。这个想法是每个训练样本都代表一个径向基神经元的平均值。

我对 pyGRNN 有问题,它是各向异性 GRNN 的 Python 实现。基本上,GRNN 所做的是为数据输入的每个特征分配一个神经元,并通过激活函数认为高斯函数)“运行”以近似输出参数。在基本的各向同性版本中,它对每个神经元的高斯函数使用相同的宽度。在各向异性版本(我的情况)中,它根据给定特征与输出的相关程度分配不同的 sigma(宽度)值。

我的问题是,当我尝试将 NN 拟合到某些特定数据子集(整个集合的一部分)时,它有时会返回所有等于 NaN 的 sigma(因此:无用)。我的完整训练集的形状为 (540,47)(因此:540 个数据点,47 个特征)并且与我的模型配合良好。但是,当我尝试使用某些子集(即形状 (540,20))训练模型时,它会返回 NaN sigmas。

我找不到导致它的任何模式(例如某些特征选择或某些输入形状),但这种错误行为确实会重复(当使用相同的子集时)。我确实注意到,不仅是特征的选择,还有它们的顺序导致了这个错误——给定的特征集可能会返回正确的结果或错误,这取决于它们在传递给 model.fit() 之前被洗牌的方式。>

请注意:我的训练集已从所有完全相关的特征和所有具有零标准开发的特征中剥离。

如果有人可以帮助解决错误的可能原因(更重要的是:修复它的方法),或者甚至是有关如何排除故障的建议 - 那真的会很有帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)