微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决各向异性 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 举报,一经查实,本站将立刻删除。