十一、机器学习进阶知识:广义回归神经网络(GRNN)的实现(Python,附源码及数据集)

一、理论基础

广义回归神经网络(Generalized Regression Neural Network,简称GRNN)是一种具有较好的非线性逼近能力的四层前向传播神经网络,它属于径向基神经网络的一种变形形式,数据输入网络后依次经过输入层、模式层、求和层、输出层后得到输出结果,与反向传播神经网络(BPNN)不通的是该网络没有训练过程,主要通过对模式层的平滑因子进行优化来获得好的输出结果。
反向传播神经网络(BPNN)原理参考:
反向传播神经网络(BPNN)的实现(Python,附源码及数据集)

1、广义回归神经网络结构

广义回归神经网络的结构图如下图所示:
在这里插入图片描述

2、输入层

这一层主要实现数据的输入过程,并将输入数据传递至模式层,该层的节点数为输入数据的特征维度。

3、模式层

一般使用高斯函数对输入数据进行处理,节点数为训练样本的个数,具体的计算公式如下:
在这里插入图片描述

其中x_i为训练样本,x_j为学习样本,σ为平滑因子,

4、求和层

假设输出样本维度为k,则该层节点数为k+1,其中一个节点输出S_D为模式层输出的算术和,其余节点输出S_Ni均为模式层输出的加权和,具体的计算公式如下:
在这里插入图片描述
在这里插入图片描述

其中ω_ij为加权系数。

5、输出层

该层节点数为输出样本维度,主要根据求和层求出的算术和与加权和进行计算输出,计算公式如下:
在这里插入图片描述

6、优化思路

虽然GRNN无需进行网络训练,但模式层的平滑因子σ对网络的性能影响较大,平滑因子过大或过小会分别导致网络出现欠拟合与过拟合的现象,而在实验中通常难以将平滑因子设定至较优的数值,因此若想获得较好的网络性能,一般选用高效的智能优化算法对平滑因子进行寻优。
常见的智能优化算法介绍

二、广义回归神经网络的实现

以数据预测为例,下面介绍基于Python实现径向基神经网络的过程。
选用某省市的表层土壤重金属元素数据集作为实验数据,该数据集总共96组,随机选择其中的24组作为测试数据集,72组作为训练数据集。选取重金属Ti的含量作为待预测的输出特征,选取重金属Co、Cr、Mg、Pb作为模型的输入特征。

1、实现过程(GRNN.py)

#库的导入
import numpy as np
import pandas as pd

#输入层
#读取训练数据
print('------------------------1. Load train data------------------------')
df = pd.read_csv("train.csv")
df.columns = ["Co", "Cr", "Mg", "Pb", "Ti"]
Co = df["Co"]
Co = np.array(Co)
Cr = df["Cr"]
Cr = np.array(Cr)
Mg=df["Mg"]
Mg=np.array(Mg)
Pb = df["Pb"]
Pb =np.array(Pb)
Ti = df["Ti"]
Ti = np.array(Ti)
inputX = np.mat([Co,</
  • 11
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七层楼的疯子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值