资源简介
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算法训练决策树
相关资源
- 运用ID3算法训练决策树
- 文书网最新版getKey.js(获取vl5x值)
- webpack4.0视频教程
- djangol实现学生管理网站
- 基于西瓜书的聚类代码和介绍
- Sublime3护眼主题
- 威纶通软件EBproV6.02.01.274-20190111.zip
- LDPC BP译码程序
- 基于labview的BP神经网络诊断程序
- 基于小波变换与BP神经网络的ECG信号的
- BP神经网络基础
- 采用动量梯度下降算法训练 BP 网络
- LDPC码在BPSK调制下的通过AWGN 信道下的
- fortran编写的BP神经网络
- 传智播客_汤阳光OA项目12天_含JBPM完整
- 神经网络BP函数逼近
- 机载下视圆周SAR三维BP成像
- 基于BP神经网络整定的PID温度控制.p
- tensorflow-2.1.0-cp37-cp37m-win_amd64.whl
- 12306爬虫源码
- ICS lab10 WebProxy
- libpcap-1.9.0
- rtl60.bpl 文件
-
failed to execute sc
ript 解决方案+命令行 - zw_lw5413-9700981-BPSO.zip
- zw_qyq08409121-7589293-BP神经网络法确定工
- zw_qq_36780670-10758712-基于遗传算法的B
- 一次性口令身份认证
- XGboost训练印第安人糖尿病数据
- 一个很好的bp神经网络预测程序,有较
评论
共有 条评论