function RBF_NN_Example()

clc

clear all

%  创建训练样本

%  线性函数的训练

Mn_Train=100*[rand(1,5) rand(1,5)+0.5 rand(1,5)+1 rand(1,5)+1.5;...

rand(1,5) rand(1,5)+0.5 rand(1,5)+1 rand(1,5)+1.5];

n=size(Mn_Train,2);

%  Mn_Train 为2*20的矩阵

Nn_Train=[2*Mn_Train;3*Mn_Train(1,:)];

%  Nn_Train 为3*20的矩阵

%  将训练样本进行聚类分析,分为4类

H=4;

%  将样本归一化

[SampleX,pmin,pmax,SampleY,tmin,tmax]=premnmx(Mn_Train,Nn_Train);

%  将训练样本进行聚类并形成聚类中心

options=statset('Display','final');

[index,center]=kmeans(SampleX',H,'Distance','city',...

'Replicates',10,'Options',options);

figure(1)

X=SampleX';

set(figure(1),'color','w')

hold on

plot(X(index==1,1),X(index==1,2),'ro','markersize',9,'markeredgecolor',...

'k','markerfacecolor','r')

plot(X(index==2,1),X(index==2,2),'go','markersize',9,'markeredgecolor',...

'k','markerfacecolor','g')

plot(X(index==3,1),X(index==3,2),'mo','markersize',9,'markeredgecolor',...

'k','markerfacecolor','m')

plot(X(index==4,1),X(index==4,2),'bo','markersize',9,'markeredgecolor',...

'k','markerfacecolor','b')

plot(center(:,1),center(:,2),'ko','markersize',15,'markeredgecolor',...

'k','markerfacecolor','k')

title('样本聚类','fontsize',16)

grid on

hold off

%  spread径函数的扩展速度设置

spread=0.3;

%  基于高斯函数的隐藏层神经元的输出

%  形成4*20的矩阵

%  阈值

b=ones(1,H)*0.8326/spread;

center=center';

Hidden_Out=zeros(H,size(SampleX,2));

for i=1:H

for j=1:size(SampleX,2)

Hidden_Out(i,j)=exp(-b(i)*(norm(SampleX(:,j)-center(:,i)).^2));

end

end

%  对输出层权重的训练,最速下降法

MaxIteration=1000;

Iteration=0;

tol=1e-3;

lemda=0.001;

%  初始化参数和阈值

N=size(SampleY,1);

W=0.5*rand(N,H)-0.1;

B=0.5*rand(N,1)-0.1;

%  网络输出值

NetOut=W*Hidden_Out+repmat(B,1,n);

Resid=SampleY-NetOut;

%  均方误

MSE_error=sumsqr(Resid)./(N*n);

%  训练权重开始

while Iteration

NetOut=W*Hidden_Out+repmat(B,1,n);

Resid=SampleY-NetOut;

MSE_error=sumsqr(Resid)./(N*n);

Delta=Resid;

%  最速下降训练

dW=Delta*Hidden_Out';

dB=Delta*ones(n,1);

W=W+lemda*dW;

B=B+lemda*dB;

if MSE_error

break;

end

Iteration=Iteration+1;

end

NetOut=W*Hidden_Out+repmat(B,1,n);

Samplefit=postmnmx(NetOut,tmin,tmax);

%  将拟合样本和原样本比较

figure(2)

set(figure(2),'color','w')

hold on

subplot(3,1,1)

hold on

plot(1:20,Nn_Train(1,:),'ro-','markersize',8)

plot(1:20,Samplefit(1,:),'bo-','markersize',8)

title('样本拟合对比')

subplot(3,1,2)

hold on

plot(1:20,Nn_Train(2,:),'ro-','markersize',8)

plot(1:20,Samplefit(2,:),'bo-','markersize',8)

title('样本拟合对比')

subplot(3,1,3)

hold on

plot(1:20,Nn_Train(3,:),'ro-','markersize',8)

plot(1:20,Samplefit(3,:),'bo-','markersize',8)

title('样本拟合对比')

hold off

python rbf神经网络_原创,基于径向基函数(RBF)神经网络RBF网络的举例应用!相关推荐

  1. matlab rbf函数_基于径向基函数(RBF)的无网格伪谱法与程序实现(2)——微分矩阵...

    参考资料 Gregory E. Fasshauer. Meshfree Approximation Methods with MATLAB. P.387 P401 数值实现 Matlab 2019a ...

  2. 基于径向基函数(RBF)的函数插值

    基于径向基函数的函数插值 1. 函数插值 2. RBF函数插值 代码实现 1. 函数插值 函数插值问题: 用形式简单的插值函数 f^(x)\hat f(x)f^​(x) 近似原函数 (1)\qquad ...

  3. 基于径向基函数RBF神经网络的非线性函数拟合研究-含Matlab代码

    目录 一.RBF神经网络基本原理 二.模型建立 三.RBF网络拟合结果分析 四.注意事项 五.参考文献 六.Matlab代码获取 一.RBF神经网络基本原理 1988年Broomhead和Lowe将径 ...

  4. elman神经网络_西瓜书第五章——神经网络

    5.1 神经元模型 定义:神经网络是具有适应性的简单单元组成的广泛并行互联的网络,他的组织能够模拟生物神经系统对真实世界所做出的交互反应 5.2 感知机与多层网络 *感知机由两层神经元组成 感知机只能 ...

  5. python机器交易_[原创]Python 机器学习之 SVM 预测买卖 -- 基于 BotVS 量化平台

    Python 机器学习之 SVM 预测买卖 Python入门简单策略 sklearn 机器学习库的使用 回测系统自带的库有 numpy pandas TA-Lib scipy statsmodels  ...

  6. 计算机科学与python编程导论_【基于Python】MIT OCW 计算机科学与编程导论

    [基于Python]MIT OCW 计算机科学与编程导论 (MIT Course Number 6.0001)Introduction to Computer Science and Programm ...

  7. 如何用python制作动画_如何基于Python Matplotlib实现网格动画

    -1- 如果你对本文的代码感兴趣,可以去 Github (文末提供)里查看.第一次运行的时候会报一个错误(还没找到解决办法),不过只要再运行一次就正常了. 这篇文章虽然不是篇典型的数据科学类文章,不过 ...

  8. python 特征工程_[译] 基于时序数据的特征工程 --- Python实现

    基于时序数据的回归预测问题,在工作中经常遇到的.它与一般的监督学习的回归模型的区别在于数据本身是基于时序的.而常用的时序预测模型,比如arima等,添加其他特征时又不方便,不得不求助于经典的监督学习预 ...

  9. python 高精度时间_如何基于Python代码实现高精度免费OCR工具

    近期Github开源了一款基于Python开发.名为Textshot的截图工具,刚开源不到半个月已经500+Star. 这两天抽空看了一下Textshot的源码,的确是一个值得介绍的项目. 相对于大多 ...

最新文章

  1. Java删除指定文件夹下的文件和目录
  2. java 微网站_java架构之路-(微服务专题)初步认识微服务与nacos初步搭建
  3. 【PP生产订单】入门介绍(十一)
  4. 机器人动力学(Basic Newton-Euler Mechanics)
  5. 语言深入:java中究竟是传值还是传引用
  6. java rsa内容超长_RSA 非对称加密解密,超长字符串分块处理
  7. 抽象工厂模式(Absraact Factory)介绍与实现
  8. 【Python系列】之判断字符是否为数字
  9. mac使用eclipse创建java_【Java】Mac上使用Eclipse创建Java项目的一般步骤
  10. 从一件数据清洗的小事说起
  11. 数据库 读锁(共享锁)、 写锁(排他锁)
  12. 五分钟就能上手的Android APP开发入门教程!!!
  13. 7 Papers Radios | 矩阵乘法无需相乘,速度提升100倍;一个神经元顶5到8层神经网络...
  14. (一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述
  15. 低价主机,怎么找性价比虚拟主机香港空间
  16. 大数据难吗?如何快速掌握大数据开发技能
  17. 《linux硬盘安装方法 》——引自 http://blog.csdn.net/rusi_lsk/
  18. MySQL复制跳过错误--slave_skip_errors、sql_slave_skip_counter、slave_exec_mode
  19. android rom指什么,【安卓基础知识】什么是ROM、RAM
  20. Q平台Audio集成开发 高通Audio术语缩写

热门文章

  1. Linux快速查看某条命令的版本和存放的位置(ls -l `which mvn`)
  2. python -scikit
  3. [Qt]Qt程序发布:在ubuntu下打包成Debian包的过程
  4. iOS 开发笔记 cocoapods 配置遇到的问题
  5. Automation Test in Maya Plugin Development
  6. 《深入浅出设计模式-中文版》读书笔记-工厂模式(五)
  7. linux系统/var目录的作用
  8. SBT搭建Spark
  9. chgrp 简明笔记
  10. 如何定义视觉设计规范?