资源简介
BPNet算法是一种最有效的多层神经网络学习方法算法实现分类。包括已实现的代码和训练、测试的数据集。

代码片段和文件信息
#-*-coding:utf-8-*-
from numpy import *
class BPNet(object):
def __init__(self):
self.eb=0.01
self.iterator=0
self.eta=0.1
self.mc=0.3
self.maxiter=2000
self.nHidden=4;
self.nOut=1;
self.errlist=[]
self.dataMat=0
self.classLabes=0
self.nSampNu=0
self.nSampDim=0
# self.hi_wb=self.hi_wb+(1.0-self.mc)*self.eta*dhi_wb+self.mc*dhi_wbOld
#激活函数
def logistic(selfnet):
return 1.0/(1.0+exp(-net))
#q全局误差函数
def errorfunc(selfinX):
return sum(power(inX2))*0.5
#传递函数导函数
def dlogit(selfnet):
return multiply(net(1.0-net))
def init__hiddenWB(self):#隐含层初始化
self.hi_w=2.0*(random.rand(self.nHiddenself.nSampDim)-0.5)
self.hi_b = 2.0 * (random.rand(self.nHidden 1) - 0.5)
self.hi_wb = mat(self.addcol(mat(self.hi_w)mat(self.hi_b)))
def init_OutputWB(self):#输出层初始化
self.out_w=2.0*(random.rand(self.nOutself.nHidden)-0.5)
self.out_b = 2.0 * (random.rand(self.nOut 1) - 0.5)
self.out_wb = mat(self.addcol(mat(self.out_w)mat(self.out_b)))
#加载数据集
def loadDataSet(selffilename):
self.dataMat=[];self.classLabes=[]
fr=open(filename)
for line in fr.readlines():
lineArr=line.strip().split()
self.dataMat.append([float(lineArr[0])float(lineArr[1])1.0])
self.classLabes.append(float(lineArr[2]))
self.dataMat=mat(self.dataMat)
mn=shape(self.dataMat)
self.nSampNum=m;#样本数量
self.nSampDim=n-1#样本维度
#数据集归一化
def normalize(selfdataMat):
[mn]=shape(dataMat)
for i in xrange(n-1):
dataMat[:i]=(dataMat[:i]-mean(dataMat[:i]))/(std(dataMat[:i])+1.0e-10)
return dataMat
#矩阵新增新列
def addcol(selfmatrix1matrix2):
[m1n1]=shape(matrix1)
[m2n2]=shape(matrix2)
if m1!=m2:
print “different rowscan not merge matrix“
return ;
mergMat=zeros((m1n1+n2))
mergMat[:0:n1]=matrix1[:0:n1]
mergMat[:n1:(n1+n2)]=matrix2[:0:n2]
return mergMat
#绘制分类点
def drawClassScatter(selfplt):
i=0
for mydata in self.dataMat:
if self.classLabes[i]==1:
plt.scatter(mydata[00]mydata[01]c=‘blue‘marker=‘o‘)
else:
plt.scatter(mydata[00] mydata[01] c=‘red‘ marker=‘s‘)
i+=1
#主函数----------
def bpTrain(self):
SampIn=self.dataMat.T
expected=mat(self.classLabes)
self.init__hiddenWB();self.init_OutputWB()
dout_wbOld=0.0;dhi_wbOld=0.0
#主循环
for i in xrange(self.maxiter):
#正向传播,从输入层到隐藏层
hi_input=self.hi_wb*SampIn
hi_output=self.logistic(hi_input)
hi2out=self.addcol(hi_output.Tones((self.nSampNum1))).
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 448 2018-04-24 21:57 BPNet\.idea\BPNet.iml
文件 213 2018-04-23 20:19 BPNet\.idea\misc.xm
文件 466 2018-04-24 21:57 BPNet\.idea\modules.xm
文件 22641 2018-04-25 20:45 BPNet\.idea\workspace.xm
文件 5224 2018-04-25 19:54 BPNet\BPNet.py
文件 6138 2018-04-25 19:54 BPNet\BPNet.pyc
文件 577 2018-04-25 20:16 BPNet\BPTest.py
文件 2251 2018-04-24 21:37 BPNet\data.txt
目录 0 2018-04-27 18:57 BPNet\.idea
目录 0 2018-04-27 18:57 BPNet
----------- --------- ---------- ----- ----
37958 10
- 上一篇:决策树算法ID3和C45
- 下一篇:运用ID3算法训练决策树
相关资源
- bp神经网络源代码,可直接运行
- Pythonamp;课堂amp;笔记(高淇amp;400;集第
- Python中Numpy库最新教程
-
imx6qSBP的jli
nk初始化脚本 - 用python编写的移动彩信的发送程序
- Python全栈学习笔记面向对象大作业:
- BCG帮助手册,完整版_修正
- python实现的ftp自动上传、下载脚本
- 改进的BP神经网络算法
- 基于bp神经网络的表情识别
- Python版的A*寻路算法
- BFSK/BPSK-BER 蒙特卡洛仿真程序
- IronPython IDE
-
UnityWebPla
yer及UnityWebPla yerFull -
UnityWebPla
yerFull - 带电粒子的横向动量高达100 GeV / c在
- PbPb碰撞中D介子的核修饰因子
- N = 4 $$ \\ mathcal {N} = 4 $$ Chern-Simons-ma
- FABP2基因54位点多态性与结直肠癌易感
- 佳能canon lbp3000激光打印机驱动 for w
- BPMN2.0 Modeler for Visio
- Rademacher和BPS混合黑洞
- 基于熵权法的PHC管桩承载力组合预测
- 基于ARIMA、BP神经网络与GM的组合模型
- pip-10.0.1.tar.gz
- 基于BP人工神经网络的SmFeN永磁材料工
- Data Science from Scratch 2nd Edition
- rtl8191s 802.11n 150m/300mbps无线网卡驱动程
- bpsk 计算误码率
- shape_predictor_68_face_landmarks.dat.bz2 68个标
评论
共有 条评论