python rbf神经网络_原创,基于径向基函数(RBF)神经网络RBF网络的举例应用!
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网络的举例应用!相关推荐
- matlab rbf函数_基于径向基函数(RBF)的无网格伪谱法与程序实现(2)——微分矩阵...
参考资料 Gregory E. Fasshauer. Meshfree Approximation Methods with MATLAB. P.387 P401 数值实现 Matlab 2019a ...
- 基于径向基函数(RBF)的函数插值
基于径向基函数的函数插值 1. 函数插值 2. RBF函数插值 代码实现 1. 函数插值 函数插值问题: 用形式简单的插值函数 f^(x)\hat f(x)f^(x) 近似原函数 (1)\qquad ...
- 基于径向基函数RBF神经网络的非线性函数拟合研究-含Matlab代码
目录 一.RBF神经网络基本原理 二.模型建立 三.RBF网络拟合结果分析 四.注意事项 五.参考文献 六.Matlab代码获取 一.RBF神经网络基本原理 1988年Broomhead和Lowe将径 ...
- elman神经网络_西瓜书第五章——神经网络
5.1 神经元模型 定义:神经网络是具有适应性的简单单元组成的广泛并行互联的网络,他的组织能够模拟生物神经系统对真实世界所做出的交互反应 5.2 感知机与多层网络 *感知机由两层神经元组成 感知机只能 ...
- python机器交易_[原创]Python 机器学习之 SVM 预测买卖 -- 基于 BotVS 量化平台
Python 机器学习之 SVM 预测买卖 Python入门简单策略 sklearn 机器学习库的使用 回测系统自带的库有 numpy pandas TA-Lib scipy statsmodels ...
- 计算机科学与python编程导论_【基于Python】MIT OCW 计算机科学与编程导论
[基于Python]MIT OCW 计算机科学与编程导论 (MIT Course Number 6.0001)Introduction to Computer Science and Programm ...
- 如何用python制作动画_如何基于Python Matplotlib实现网格动画
-1- 如果你对本文的代码感兴趣,可以去 Github (文末提供)里查看.第一次运行的时候会报一个错误(还没找到解决办法),不过只要再运行一次就正常了. 这篇文章虽然不是篇典型的数据科学类文章,不过 ...
- python 特征工程_[译] 基于时序数据的特征工程 --- Python实现
基于时序数据的回归预测问题,在工作中经常遇到的.它与一般的监督学习的回归模型的区别在于数据本身是基于时序的.而常用的时序预测模型,比如arima等,添加其他特征时又不方便,不得不求助于经典的监督学习预 ...
- python 高精度时间_如何基于Python代码实现高精度免费OCR工具
近期Github开源了一款基于Python开发.名为Textshot的截图工具,刚开源不到半个月已经500+Star. 这两天抽空看了一下Textshot的源码,的确是一个值得介绍的项目. 相对于大多 ...
最新文章
- Java删除指定文件夹下的文件和目录
- java 微网站_java架构之路-(微服务专题)初步认识微服务与nacos初步搭建
- 【PP生产订单】入门介绍(十一)
- 机器人动力学(Basic Newton-Euler Mechanics)
- 语言深入:java中究竟是传值还是传引用
- java rsa内容超长_RSA 非对称加密解密,超长字符串分块处理
- 抽象工厂模式(Absraact Factory)介绍与实现
- 【Python系列】之判断字符是否为数字
- mac使用eclipse创建java_【Java】Mac上使用Eclipse创建Java项目的一般步骤
- 从一件数据清洗的小事说起
- 数据库 读锁(共享锁)、 写锁(排他锁)
- 五分钟就能上手的Android APP开发入门教程!!!
- 7 Papers Radios | 矩阵乘法无需相乘,速度提升100倍;一个神经元顶5到8层神经网络...
- (一)Java网络编程之计网基础、TCP-IP协议簇、TCP、UDP协议及腾讯QQ通信原理综述
- 低价主机,怎么找性价比虚拟主机香港空间
- 大数据难吗?如何快速掌握大数据开发技能
- 《linux硬盘安装方法 》——引自 http://blog.csdn.net/rusi_lsk/
- MySQL复制跳过错误--slave_skip_errors、sql_slave_skip_counter、slave_exec_mode
- android rom指什么,【安卓基础知识】什么是ROM、RAM
- Q平台Audio集成开发 高通Audio术语缩写