人工神经网络(ANN)——python代码及示例

文章介绍了如何利用Python的sklearn库构建神经网络预测模型,特别是使用MLPRegressor进行数据预测。首先,数据从Excel转换为TXT格式,然后通过数据标准化处理。模型使用了‘lbfgs’优化器和‘identity’激活函数,对给定的非预测数据进行预测,并计算了已知数据的预测相对误差。最后,文章展示了原始数据与预测数据的图形对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据结构如下所示:

(年份是我随便写的,实际应该是1990-2012,在代码画图时可以用到)

将excel表处理成如下形式(预测指标放在最后一列),然后将excel数据另存为txt形式,可以在python中引用。

 首先确保环境下有安装sklearn、numpy、pylab库,安装方法:

pip install +库名

其中安装sklearn库前需要安装numpy、scipy、matplotlib库。

然后就可以使用以下代码:

from sklearn.neural_network import MLPRegressor
import numpy as np
import pylab as plt

a = np.loadtxt('神经网络预测案例.txt')
x0 = a[:,:5]; y0 = a[:,5]  #提出训练样本数据
m1 = x0.max(axis=0); m2 = x0.min(axis=0)  #计算逐列最大值和最小值
bx0 = 2*(x0-m2)/(m1-m2)-1  #数据标准化
#构造并拟合模型
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 #预测年份的非预测数据
bx = 2*(x-m2) / (m1-m2)-1  #数据标准化
yh = md.predict(bx); print('预测值为:,',np.round(yh,6))
yh0 = md.predict(bx0); delta = abs(yh0-y0)/y0*100
print('已知数据预测的相对误差:', 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='原始数据')
plt.plot(t, yh0, '-*', label='预测数据')
plt.xticks(t, rotation=55); plt.legend(); plt.show()

构建模型的核心语句:

md = MLPRegressor(solver='lbfgs',activation='identity',hidden_layer_sizes=10).fit(bx0, y0)

其中,solver参数可选“lbfgs(优化器,小样本适用)、sgd(随机梯度下降)、adam(默认,大样本适用)”

输出结果如下:

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九九jiujiu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值