实现一个方差跟权值直接确定的简单RBF神经网络。
来源:互联网 发布:ubuntu 16.04 升级 编辑:程序博客网 时间:2024/06/07 02:09
# -*- coding: utf-8 -*-import scipy.io as sio import scipy.linalg as sli #import matplotlib.pyplot as pltfrom pylab import *import numpy as npimport matplotlib.pyplot as plt import numpy as np #把训练数据中的矩阵变成数组matfn = u'E:\iris_train.mat' trainMat = sio.loadmat(matfn) trainMat =mat(trainMat['iris_train'])#统一 地 计 算 和 确 定 训练 样本 各 方 差 σ i ( i = 1, 2, …,n)trainConet = trainMat [:,:4]L = np.zeros((90,90))for i in range(90): for j in range(90): L[i][j] = np.linalg.norm(trainConet[j,:]-trainConet[i,:]) #计算泛数,并把每一行的泛数存放在L数组中 # 定义Lmax存放最大泛数 Lmax = L[0][0] for i in range(90): #求出最大值的泛数 for j in range(90): if L[i][j]>Lmax: Lmax = L[i][j]oi=Lmax/((2*90)**0.5) #求出方差#基于矩阵伪逆思想直接确定 RBF 网络连接权值 w ijtrainOut = trainMat[:,4:7]#决定输入高基函数ri=exp(-L/(2*oi*oi))t = sli.pinv(ri)wij = t*trainOut###输入测试matfj = u'E:\iris_test.mat' testMat = sio.loadmat(matfj) testMat =mat(testMat['iris_test'])print testMat[:,4:7]#统一 地 计 算 和 确 定 测试 样本 各 方 差 σ i ( i = 1, 2, …,n)testConet =testMat[:,:4]L2 = np.zeros((60,90))for i in range(60): for j in range(90): L2[i][j] = np.linalg.norm(trainConet[j,:]-testConet[i,:]) #计算泛数,并把每一行的泛数存放在L2矩阵中 #定义L2max存放最大泛数 L2max = L2[0][0] for i in range(60): #求出最大值的泛数 for j in range(90): if L2[i][j]>L2max: L2max = L2[i][j] oi2=L2max/((2*90)**0.5) #求出方差'''r2 = exp(-L2/(2*oi2*oi2))y = r2*wij #计算出分类结果for i in range(60): if y[i,0]==max(y[i,0],y[i,1],y[i,2]): y[i,0]=1 y[i,1]=0 y[i,2]=0 if y[i,1]==max(y[i,0],y[i,1],y[i,2]): y[i,0]=0 y[i,1]=1 y[i,2]=0 if y[i,2]==max(y[i,0],y[i,1],y[i,2]): y[i,0]=0 y[i,1]=0 y[i,2]=1print y##定义一个画图方法:subnum选择画图区域,mat为要画的矩阵!!!def draw(subnum,mat): plt.sca(subplot(3,2,subnum)) plt.plot(mat) # 画出测试的数据散点图fig1 = plt.figure()# 分别创立3个子表画4,5,6列的理想输出图和网络输出图draw(1,testMat[:,[4]])draw(3,testMat[:,[5]])draw(5,testMat[:,[6]])draw(2,y[:,0])draw(4,y[:,1])draw(6,y[:,2])plt.show()<span style="white-space:pre"></span>
最近和同学参加了一个数据挖掘的项目,这是一个实现RBF的简单程序。
0 0
- 实现一个方差跟权值直接确定的简单RBF神经网络。
- RBF神经网络的matlab简单实现
- rbf神经网络的实现
- RBF神经网络简单介绍与MATLAB实现
- RBF(径向基)神经网络 非线性函数回归的实现
- RBF神经网络的学习算法
- 基于高斯核的RBF神经网络
- RBF神经网络与BP神经网络的比较
- RBF神经网络与BP神经网络的比较
- RBF神经网络与BP神经网络的比较
- RBF神经网络与BP神经网络的比较
- RBF神经网络与BP神经网络的比较
- RBF神经网络与BP神经网络的比较
- RBF神经网络与BP神经网络的比较
- 实现一个最简单的神经网络
- 基于python实现一个简单的神经网络
- RBF神经网络
- RBF神经网络
- 堆和栈的区别
- 4.29Android中对jni调用部分的调试
- JSP中include指令和include动作的区别
- 抽象类和接口
- poj 1028-Web Navigation
- 实现一个方差跟权值直接确定的简单RBF神经网络。
- windows下ffmpeg的编译
- static 和final
- VBA第3课 常量与变量
- 點絳唇(林逋)
- equals 和 ==
- C++ 线段树—模板&总结
- Android 系统权限
- Oracle 监听lsnrctl命令启动报错(TNS-12537,TNS-12560,TNS-00507)