十一、机器学习进阶知识:模糊神经网络(FNN)的实现(Python,附源码及数据集)

十一、机器学习进阶知识:模糊神经网络(FNN)的实现(Python,附源码及数据集)本文介绍了模糊神经网络 FNN 的基础理论 包括结构 前向传播和反向传播过程 并详细阐述了建模步骤

大家好,欢迎来到IT知识分享网。

一、理论基础

1、模糊神经网络结构

2、前向传播过程

其中ω_j为输出层的连接权值,上述公式是基于网络的输出变量维度为1时而设定的权值,当输出变量的维度增加时,对权值也将进行相应的调整。

3、反向传播过程

4、建模步骤

以使用模糊神经网络进行数据预测为例,可以将模糊神经网络预测模型的建模步骤总结如下:

  1. 根据输入数据的相关特征确定模糊神经网络输入层、隶属度函数计算层、规则生成层、归一化层以及输出层的节点数;
  2. 选择一种参数初始化方法对模糊神经网络隶属度函数计算层中隶属度函数的中心点、宽度向量以及输出层的连接权值、阈值进行随机初始化;
  3. 数据由输入层输入模糊神经网络,依次经过隶属度函数计算层以及规则生成层计算获得输出;
  4. 将规则生成层的输出在归一化层进行归一化处理之后经由输出层的加权处理获得网络的最终前向传播输出;
  5. 传递至隐含层后经径向基函数对数据进行非线性转换;
  6. 选择一种损失函数对网络的前向传播输出以及目标值进行相关计算得到损失值;
  7. 以输出层的损失值计算得到输出层连接权值的梯度,选择一种反向传播算法对它们进行调整;
  8. 损失值传递至隶属度函数计算层,同样使用相同的反向传播算法对隶属度函数的中心点以及宽度向量进行调整;
  9. 获得一个参数得到更新后的模糊神经网络;
  10. 在达到最大迭代次数之前,重复步骤3到步骤9,在达到最大迭代次数后,输出隐含层与输出层参数确定的多层前馈神经网络。

二、模糊神经网络的实现

1、训练过程(FNN.py)

#库的导入 import numpy as np import pandas as pd #输入数据的导入 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) samplein = np.mat([Co,Cr,Mg,Pb]) #数据归一化,将输入数据压缩至0到1之间,便于计算,后续通过反归一化恢复原始值 sampleinminmax = np.array([samplein.min(axis=1).T.tolist()[0],samplein.max(axis=1).T.tolist()[0]]).transpose()#对应最大值最小值 #待预测数据为Ti sampleout = np.mat([Ti]) sampleoutminmax = np.array([sampleout.min(axis=1).T.tolist()[0],sampleout.max(axis=1).T.tolist()[0]]).transpose() sampleinnorm = ((np.array(samplein.T)-sampleinminmax.transpose()[0])/(sampleinminmax.transpose()[1]-sampleinminmax.transpose()[0])).transpose() sampleoutnorm = ((np.array(sampleout.T)-sampleoutminmax.transpose()[0])/(sampleoutminmax.transpose()[1]-sampleoutminmax.transpose()[0])).transpose() sampleinnorm = sampleinnorm.transpose() sampleoutnorm = sampleoutnorm.transpose() S = 2 #模糊分级个数 T = 16 #规则生成层、归一化层节点数 iteration = 500 #迭代训练次数 learningrate = 0.01 #学习率 #c1、b1分别为李隶属度层的中心点与宽度向量、w1为输出层的权值,sampleinnorm.shape[1]代表输入数据的4个类别 c1 = np.random.uniform(low=-1, high=1, size

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/117337.html

(0)
上一篇 2025-11-21 21:00
下一篇 2025-11-21 21:15

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信