数学建模之Python-BP神经网络算法分类模型

前言:

BP神经网络预测见下:
https://blog.csdn.net/MrMaurice/article/details/88384215?spm=1001.2014.3001.5501

了解了np.r_ 和c_
https://blog.csdn.net/weixin_41797117/article/details/80048688?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162843097516780255252558%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=162843097516780255252558&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-1-80048688.first_rank_v2_pc_rank_v29&utm_term=np.r_&spm=1018.2226.3001.4187

BP神经算法理论

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

例题1:bp分类

在这里插入图片描述

from sklearn.neural_network import MLPClassifier
import numpy as np
# x0=np.array([[1.24,1.27],[1.36,1.74],[1.38,1.90],[1.38,1.82],[1.38,1.90],[1.40,1.70],[1.48,1.82],[1.54,1.82],[1.56,2.08],[1.14,1.78],[1.18,1.96],[1.20,1.86],[1.26,2.00],[1.28,2.00],[1.30,1.96]])
# x=np.array([[1.24,1.80],[1.28,1.84],[1.40,2.04]])
# g=np.hstack([np.ones(9),2*np.ones(6)])
# print(x0)
x0=np.array([[1.14,1.18,1.20,1.26,1.28,1.30,1.24,1.36,1.38,1.38,1.38,1.40,1.48,1.54,1.56],[1.78,1.96,1.86,2.00,2.00,1.96,1.72,1.74,1.64,1.82,1.90,1.70,1.82,1.82,2.08]]).T
y0=np.r_[np.ones(6),np.zeros(9)]
md=MLPClassifier(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=15)
md.fit(x0,y0)
x=np.array([[1.24,1.80],[1.28,1.84],[1.40,2.04]])
pred=md.predict(x)
print(md.score(x0,y0))
print(md.coefs_)
print("属于各类的概率",md.predict_proba(x))
print("三个特判样本点的类别",pred)

在这里插入图片描述
如上为神经元15个
在这里插入图片描述

例题2:bp预测

在这里插入图片描述

#程序文件Pex17_5.py
from sklearn.neural_network import MLPRegressor
from numpy import array, loadtxt
from pylab import subplot, plot, show, xticks,rc,legend
rc('font',size=15); rc('font',family='SimHei')
a=loadtxt("Pdata17_5.txt"); x0=a[:,:3]; y1=a[:,3]; y2=a[:,4];
md1=MLPRegressor(solver='lbfgs', alpha=1e-5, hidden_layer_sizes=10)
md1.fit(x0, y1); x=array([[73.39,3.9635,0.988],[75.55,4.0975,1.0268]])
pred1=md1.predict(x); print(md1.score(x0,y1));
print("客运量的预测值为:",pred1,'\n----------------');
md2=MLPRegressor(solver='lbfgs', alpha=1e-5, hidden_layer_sizes=10)
md2.fit(x0, y2); pred2=md2.predict(x); print(md2.score(x0,y2));
print("货运量的预测值为:",pred2); yr=range(1990,2010)
subplot(121); plot(yr,y1,'o'); plot(yr,md1.predict(x0),'-*')
xticks(yr,rotation=55); legend(("原始数据","网络输出客运量"))
subplot(122); plot(yr,y2,'o'); plot(yr,md2.predict(x0),'-*')
xticks(yr,rotation=55)
legend(("原始数据","网络输出货运量"),loc='upper left'); show()

数据集可以私我

  • 5
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值