數(shù)據(jù)結(jié)構(gòu)如下所示:
(年份是我隨便寫(xiě)的,實(shí)際應(yīng)該是1990-2012,在代碼畫(huà)圖時(shí)可以用到)
將excel表處理成如下形式(預(yù)測(cè)指標(biāo)放在最后一列),然后將excel數(shù)據(jù)另存為txt形式,可以在python中引用。
?首先確保環(huán)境下有安裝sklearn、numpy、pylab庫(kù),安裝方法:
pip install +庫(kù)名
其中安裝sklearn庫(kù)前需要安裝numpy、scipy、matplotlib庫(kù)。
然后就可以使用以下代碼:
from sklearn.neural_network import MLPRegressor
import numpy as np
import pylab as plt
a = np.loadtxt('神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)案例.txt')
x0 = a[:,:5]; y0 = a[:,5] #提出訓(xùn)練樣本數(shù)據(jù)
m1 = x0.max(axis=0); m2 = x0.min(axis=0) #計(jì)算逐列最大值和最小值
bx0 = 2*(x0-m2)/(m1-m2)-1 #數(shù)據(jù)標(biāo)準(zhǔn)化
#構(gòu)造并擬合模型
md = MLPRegressor(solver='lbfgs',activation='identity',
hidden_layer_sizes=10).fit(bx0, y0)
x = np.array([[399759.5,472115],[296916,317987],[201722.1,236402],[156998.4,183918.6],[278121.85,311485.13]]).T #預(yù)測(cè)年份的非預(yù)測(cè)數(shù)據(jù)
bx = 2*(x-m2) / (m1-m2)-1 #數(shù)據(jù)標(biāo)準(zhǔn)化
yh = md.predict(bx); print('預(yù)測(cè)值為:,',np.round(yh,6))
yh0 = md.predict(bx0); delta = abs(yh0-y0)/y0*100
print('已知數(shù)據(jù)預(yù)測(cè)的相對(duì)誤差:', np.round(delta,6))
t = np.arange(1990, 2012)
plt.rc('font', size=15); plt.rc('font', family='SimHei')
plt.plot(t, y0, '--o', label='原始數(shù)據(jù)')
plt.plot(t, yh0, '-*', label='預(yù)測(cè)數(shù)據(jù)')
plt.xticks(t, rotation=55); plt.legend(); plt.show()
構(gòu)建模型的核心語(yǔ)句:
md = MLPRegressor(solver='lbfgs',activation='identity',hidden_layer_sizes=10).fit(bx0, y0)
其中,solver參數(shù)可選“l(fā)bfgs(優(yōu)化器,小樣本適用)、sgd(隨機(jī)梯度下降)、adam(默認(rèn),大樣本適用)”
輸出結(jié)果如下:
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-560211.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-560211.html
到了這里,關(guān)于人工神經(jīng)網(wǎng)絡(luò)(ANN)——python代碼及示例的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!