位置: IT常识 - 正文

机器学习——BP神经网络详细介绍及案例Python代码实现

编辑:rootadmin
机器学习——BP神经网络详细介绍及案例Python代码实现

推荐整理分享机器学习——BP神经网络详细介绍及案例Python代码实现,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

哒哒!来咯!来喽!

BP(Back Propagation)称误差反向传播,1985年由Rumelhart 和 McCelland提出。神经元函数如图:

(一)、举个通俗易懂的例子:假如,我说的是假如喔,我拥有N个亿,那肯定不用说了,我的N肯定是极限中lim下的正无穷啦!我要进行投资给五个公司,投给每个公司的权重分别为w1、w2、w3、w4、w5,而每个公司我的收益是不同的分别为:m1、m2、m3、m4、m5,最后我的总收益为:

 

那么问题来了,神经网络可以这么表示(如下图):

(二)、反向传播

学过Java想必大家都会编写猜数小游戏,你设定一个数,限制猜这个数的次数,比如:我设定数字为66,第一次你猜33,我说小了。对于我的信息反馈就是反向传播  ,你说的信息是正向传播。从这里你是否可以感觉这个反向传播,是不是很像测量值与真实值之间的误差信息。

(三)、激活函数——需要用一个非线性函数,将线性分量用于输入。需要通过将激活函数应用于线性组合来完成。激活函数将输入信号转换为输出信号。应用激活函数后的输出为f(a⋅W1+b))f(a⋅W1+b)),其中f()就是激活函数。

Sigmoid——最常用的激活函数之一,它被定义为 :

    Sigmoid变换呈现出值域为[0,1]的S型生长曲线。如果你需要观察在输入变化极小的情况下,输出值的变化,此时Sigmoid函数优于阶跃函数。

(四)BP神经网络

机器学习——BP神经网络详细介绍及案例Python代码实现

 从上图我们看到了,神经元函数的构造:我们发现了激活函数,激活函数就是在隐藏层中发挥着作用,当我们利用神经网络做回归的时候最后一列的隐层不含有激活函数,激活函数的作用就是非线性组合,也不知道大家会不会理解,那就再画个简单的图(这个里面没有添加偏置项b在架构网络的时候大家可以设定):

所以在我们进行建模竞赛的时候 ,对于多变量的关系可以采取拟合或者线性回归。

那么BP神经网络的反向在哪里呢? 

在我们进行权值计算的时候,我们得到的结果还可以和真实值进行对比也就是损失函数(loss)。

损失函数(loss)——建立一个网络时,为了将结果预测得尽可能靠近实际值。我们使用损失函数来衡量网络的准确,而损失函数会在发生错误时尝试惩罚网络。运行网络的目标是提高预测精度并减少误差,从而最大限度地降低成本。最优化的输出是那些成本或损失函数值最小的输出。

正向传播就是:我们通过输入让信息从输入层进入神经网络。

不知道会不会有人和我有一样的问题:它求不出来表达式,那可以干嘛呢?可以预测呀,很重要的!

(五)、房价预测实例

1.数据集:

 2.代码(和前面博文的步骤一样,只是不同在函数的调用)

from sklearn.datasets import load_bostonimport numpy as npimport pandas as pddata=pd.read_csv('./data_picture/chapter1/boston_house_prices.csv')data.head()from sklearn.model_selection import train_test_splitX=data.drop('MEDV',axis=1) y=data['MEDV'] X=X.values y=y.values X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=33,test_size=0.25)from sklearn.preprocessing import StandardScalerss_X=StandardScaler()scaler_X=ss_X.fit(X_train)X_train=scaler_X.transform(X_train)X_test=scaler_X.transform(X_test)from sklearn.neural_network import MLPRegressormodel = MLPRegressor(solver='lbfgs', hidden_layer_sizes=(15,15), random_state=1)model.fit(X_train, y_train)from sklearn.metrics import r2_score,mean_squared_error,mean_absolute_errorprint('训练集回归评估指标:')model_score1=model.score(X_train,y_train) print('The accuracy of train data is',model_score1) print('测试集回归评估指标:')model_score2=model.score(X_test,y_test) print('The accuracy of test data is',model_score2) y_test_predict=model.predict(X_test)mse=mean_squared_error(y_test,y_test_predict) print('The value of mean_squared_error:',mse)mae=mean_absolute_error(y_test,y_test_predict) print('The value of mean_absolute_error:',mae)

结果:

3.新的数据进行预测:

new_data=np.array([[0.22489,12.5,7.87,0,0.524,6.377,94.3,6.3467, 5.,311,15.2,392.52,20.45], [0.3489,11.5,7.7,0,0.526,6.477,94.3,16.3467, 5.,313,15.2,392.55,20.45]])X_new=scaler_X.transform(new_data) #标准化y_new=model.predict(X_new) #预测print(y_new)

 结果:

 房价预测范围。

本文链接地址:https://www.jiuchutong.com/zhishi/299291.html 转载请保留说明!

上一篇:flex 的 三个参数:flex-grow、flex-shrink、flex-basis(flex的作用及设置)

下一篇:Vue--》详解Vue组件生命周期的三个阶段(vue组件入门)

  • 华为p30pro和p20pro的区别(华为p30pro和p20pro哪个好)

    华为p30pro和p20pro的区别(华为p30pro和p20pro哪个好)

  • iqooz1x搭载的处理器是什么

    iqooz1x搭载的处理器是什么

  • 芯片指的是cpu吗(芯片指的是cpu吗还是内存)

    芯片指的是cpu吗(芯片指的是cpu吗还是内存)

  • 苹果x屏幕出现support(苹果x手机显示屏出现条纹)

    苹果x屏幕出现support(苹果x手机显示屏出现条纹)

  • 麒麟710f和麒麟710有差别吗(麒麟710f和麒麟710a哪个更好)

    麒麟710f和麒麟710有差别吗(麒麟710f和麒麟710a哪个更好)

  • 进网试用是什么意思(进网试用是什么意男)

    进网试用是什么意思(进网试用是什么意男)

  • 苹果电脑保存快捷键(苹果电脑保存快捷键ctrl加什么)

    苹果电脑保存快捷键(苹果电脑保存快捷键ctrl加什么)

  • 微信登录频繁怎么解决(微信登录频繁怎么登录回来呢)

    微信登录频繁怎么解决(微信登录频繁怎么登录回来呢)

  • 微信收款收多了会封号吗(微信收款收多了会怎么样)

    微信收款收多了会封号吗(微信收款收多了会怎么样)

  • 闲鱼资金保护能追回吗(闲鱼资金保护能关闭吗)

    闲鱼资金保护能追回吗(闲鱼资金保护能关闭吗)

  • 抖音短视频删除了怎么恢复(抖音短视频删除了怎么找回来)

    抖音短视频删除了怎么恢复(抖音短视频删除了怎么找回来)

  • 小米手机无线充电充不进电(小米手机无线充电有哪几款?)

    小米手机无线充电充不进电(小米手机无线充电有哪几款?)

  • 抖音上的超级乐迷是什么意思(抖音上的超级乐队是什么)

    抖音上的超级乐迷是什么意思(抖音上的超级乐队是什么)

  • 滴滴不是本人怎么刷脸(滴滴不是本人怎么接单)

    滴滴不是本人怎么刷脸(滴滴不是本人怎么接单)

  • 手机怎么登录路由器(手机怎么登录路由器管理)

    手机怎么登录路由器(手机怎么登录路由器管理)

  • ios13查找别人id(ios13查找我的iphone怎么查找别人的手机)

    ios13查找别人id(ios13查找我的iphone怎么查找别人的手机)

  • cad2020怎么设置经典模式(cad2020怎么设置二维模式)

    cad2020怎么设置经典模式(cad2020怎么设置二维模式)

  • 华为p30pro原厂带膜吗(华为p30pro手机自带膜吗)

    华为p30pro原厂带膜吗(华为p30pro手机自带膜吗)

  • 百词斩怎弄出pet词汇(百词斩p图)

    百词斩怎弄出pet词汇(百词斩p图)

  • 个人热点为啥自动关闭(个人热点为什么自己打开)

    个人热点为啥自动关闭(个人热点为什么自己打开)

  • 苹果4s系统最高能升级多少(苹果4s最高版本)

    苹果4s系统最高能升级多少(苹果4s最高版本)

  • 抖音可以看上传时间吗(抖音怎么查看上传中的作品)

    抖音可以看上传时间吗(抖音怎么查看上传中的作品)

  • vivox7八核全开怎么开(vivo手机八核全开)

    vivox7八核全开怎么开(vivo手机八核全开)

  • 【控制】自适应控制基本概念(什么叫自适应控制)

    【控制】自适应控制基本概念(什么叫自适应控制)

  • 专票税号不对可以认证吗
  • 档案室图书应该做哪个会计科目
  • 小规模企业收入怎么做账
  • 企业裁员补偿金标准是多少
  • 预付款可以抵扣进度款吗
  • 简易征收开出去的票可以抵扣吗
  • 电子发票读取不出怎么办
  • 印花税2021年需要计提吗
  • 津贴个人所得税怎么算出来的
  • 免征土地增值税
  • 销售返利计入什么科目
  • 政府扶贫支出
  • 以库存商品抵偿债务
  • 以旧换新的会计处理规定
  • 财产租赁所得应缴纳个人所得税
  • 应收账款减值处理
  • 港口建设费2021年归国家税务总局
  • 雇主责任险会计分录
  • 营改增文件2019
  • 高新企业产品开发的折旧费用可以税前扣除吗?
  • 向境外支付违约金要代扣税吗
  • 金税盘初始密码忘记了怎么办
  • 收取赔偿金开具什么发票
  • 高新企业奖励补贴交税吗
  • 小规模纳税企业所得税优惠政策
  • 上级拨入资金计入什么科目
  • 利润分配财务处理
  • 设置戴尔笔记本锁屏时间
  • 审计完结凭证要盖公章吗
  • win10如何查看显卡版本
  • 固定资产的专票可以抵扣吗
  • neoCapture.exe - neoCapture是什么进程 有什么用
  • 应收存款利息计入什么科目
  • qq2440启动linux后插入u盘出现usb 1-1: device descriptor read/64, error -110,usb 1
  • slee401.exe - slee401是什么进程 有什么用
  • vite配置详解
  • 阿尔卑斯山环保
  • php抓取网页图片
  • 利润表利息费用怎么填
  • php静态方法和非静态方法
  • 建筑修缮服务税率
  • 长期待摊费用的摊销方法
  • 不构成业务的反义词
  • adan算法
  • 数据挖掘论文选题
  • 前端等比例缩放
  • 企业的营业税金及附加
  • 教育费附加免征额
  • 股权激励和期权激励
  • 何谓应该是什么意思
  • 新准则制度体系的核心变化
  • 企业弥补以前年度亏损要怎么填表
  • 付款退回怎么做账
  • 厂家返利怎么入账
  • 进度款开票是开实收金额吗
  • 未使用的固定资产计提折旧计入什么科目
  • 收购免税农产品的进项税率
  • 专用发票附加税怎么算
  • 银行存款手工账
  • 工业企业增值税纳税义务发生时间
  • 数据库中自动增长
  • Linux下mysql源码安装笔记
  • mysql从一张表复制数据到另一张表
  • centos6yum源
  • mac怎么用win系统
  • vmware虚拟机无法打开内核设备怎么办
  • wp7.8升级wp8
  • 不会安装系统怎么安装
  • vista和win10
  • cocos预加载
  • math和maths哪个对
  • JavaScript实现Base64编码转换
  • dos命令大全及用法
  • python中random模块用法
  • 一篇文章让你彻底读懂德国历史
  • 使用chrome浏览器打开
  • cocos2d怎么用
  • 高速公路过路费一公里多少钱
  • 4s店买车需要驾驶证吗
  • 保险发票不包含哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设