xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 10KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-05-10
  • 語(yǔ)言: Python
  • 標(biāo)簽:

資源簡(jiǎn)介

python實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)的源代碼,以及使用的馬疝病數(shù)據(jù)集,基于BP神經(jīng)網(wǎng)絡(luò)的IRIS數(shù)據(jù)集訓(xùn)練和測(cè)試,有完整的數(shù)據(jù)集和實(shí)現(xiàn)代碼,直接運(yùn)行即可得到結(jié)果,并顯示,正確率,誤差,迭代次數(shù)等參數(shù)

資源截圖

代碼片段和文件信息

import?numpy?as?np

def?loaddataset(filename):
fp?=?open(filename)

#存放數(shù)據(jù)
dataset?=?[]

#存放標(biāo)簽
labelset?=?[]
for?i?in?fp.readlines():
a?=?i.strip().split()

#每個(gè)數(shù)據(jù)行的最后一個(gè)是標(biāo)簽
dataset.append([float(j)?for?j?in?a[:len(a)-1]])
labelset.append(int(float(a[-1])))
return?dataset?labelset


#x為輸入層神經(jīng)元個(gè)數(shù),y為隱層神經(jīng)元個(gè)數(shù),z輸出層神經(jīng)元個(gè)數(shù)
def?parameter_initialization(x?y?z):

#隱層閾值
value1?=?np.random.randint(-5?5?(1?y)).astype(np.float64)

#輸出層閾值
value2?=?np.random.randint(-5?5?(1?z)).astype(np.float64)

#輸入層與隱層的連接權(quán)重
weight1?=?np.random.randint(-5?5?(x?y)).astype(np.float64)

#隱層與輸出層的連接權(quán)重
weight2?=?np.random.randint(-5?5?(y?z)).astype(np.float64)

return?weight1?weight2?value1?value2

def?sigmoid(z):
return?1?/?(1?+?np.exp(-z))

‘‘‘
weight1:輸入層與隱層的連接權(quán)重
weight2:隱層與輸出層的連接權(quán)重
value1:隱層閾值
value2:輸出層閾值
‘‘‘
def?trainning(dataset?labelset?weight1?weight2?value1?value2):
#x為步長(zhǎng)
x?=?0.01
for?i?in?range(len(dataset)):
#輸入數(shù)據(jù)
inputset?=?np.mat(dataset[i]).astype(np.float64)
#數(shù)據(jù)標(biāo)簽
outputset?=?np.mat(labelset[i]).astype(np.float64)
#隱層輸入
input1?=?np.dot(inputset?weight1).astype(np.float64)
#隱層輸出
output2?=?sigmoid(input1?-?value1).astype(np.float64)
#輸出層輸入
input2?=?np.dot(output2?weight2).astype(np.float64)
#輸出層輸出
output3?=?sigmoid(input2?-?value2).astype(np.float64)

#更新公式由矩陣運(yùn)算表示
a?=?np.multiply(output3?1?-?output3)
g?=?np.multiply(a?outputset?-?output3)
b?=?np.dot(g?np.transpose(weight2))
c?=?np.multiply(output2?1?-?output2)
e?=?np.multiply(b?c)

value1_change?=?-x?*?e
value2_change?=?-x?*?g
weight1_change?=?x?*?np.dot(np.transpose(inputset)?e)
weight2_change?=?x?*?np.dot(np.transpose(output2)?g)

#更新參數(shù)
value1?+=?value1_change
value2?+=?value2_change
weight1?+=?weight1_change
weight2?+=?weight2_change
return?weight1?weight2?value1?value2

def?testing(dataset?labelset?weight1?weight2?value1?value2):
#記錄預(yù)測(cè)正確的個(gè)數(shù)
rightcount?=?0
for?i?in?range(len(dataset)):
#計(jì)算每一個(gè)樣例通過(guò)該神經(jīng)網(wǎng)路后的預(yù)測(cè)值
inputset?=?np.mat(dataset[i]).astype(np.float64)
outputset?=?np.mat(labelset[i]).astype(np.float64)
output2?=?sigmoid(np.dot(inputset?weight1)?-?value1)
output3?=?sigmoid(np.dot(output2?weight2)?-?value2)

#確定其預(yù)測(cè)標(biāo)簽
if?output3?>?0.5:
flag?=?1
else:
flag?=?0
if?labelset[i]?==?flag:
rightcount?+=?1
#輸出預(yù)測(cè)結(jié)果
print(“預(yù)測(cè)為%d???實(shí)際為%d“%(flag?labelset[i]))
#返回正確率
return?rightcount?/?len(dataset)

if?__name__?==?‘__main__‘:
dataset?labelset?=?loaddataset(‘horseColicTraining.txt‘)
weight1?weight2?value1?value2?=?parameter_initialization(len(dataset[0])?len(dataset[0])?1)
for?i?in?range(1500):
weight1?weight2?value1?value2?=?trainning(dataset?labelset?weight1?weight2?value1?value2)
rate?=?testing(dataset?labelset?weight1?weight2?value1?value2)
print(“正確率為%f“%(rate))

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-12-29?19:40??BP紲炵粡緗戠粶\
?????文件????????3722??2019-05-30?20:41??BP紲炵粡緗戠粶\horseColicTest.txt
?????目錄???????????0??2019-12-29?19:40??__MACOSX\
?????目錄???????????0??2019-12-29?19:40??__MACOSX\BP紲炵粡緗戠粶\
?????文件?????????176??2019-05-30?20:41??__MACOSX\BP紲炵粡緗戠粶\._horseColicTest.txt
?????文件???????60357??2019-05-30?20:41??BP紲炵粡緗戠粶\horseColicTraining.txt
?????文件?????????176??2019-05-30?20:41??__MACOSX\BP紲炵粡緗戠粶\._horseColicTraining.txt
?????文件????????3342??2019-06-08?15:35??BP紲炵粡緗戠粶\network.py
?????文件?????????176??2019-06-08?15:35??__MACOSX\BP紲炵粡緗戠粶\._network.py
?????文件?????????176??2019-12-29?19:40??__MACOSX\._BP紲炵粡緗戠粶

評(píng)論

共有 條評(píng)論