Python金融数据分析与挖掘(微课版) 课件 5-4.神经网络_第1页
Python金融数据分析与挖掘(微课版) 课件 5-4.神经网络_第2页
Python金融数据分析与挖掘(微课版) 课件 5-4.神经网络_第3页
Python金融数据分析与挖掘(微课版) 课件 5-4.神经网络_第4页
Python金融数据分析与挖掘(微课版) 课件 5-4.神经网络_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章机器学习与实现神经网络模拟思想与神经元工作过程神经网络数学模型神经网络分类与回归应用举例神经网络模拟思想第5章

资料学习(孩子的日常辨识能力):一个孩子从生下来,就开始不断地学习。他的大脑就好比一个能不断接受新事物,同时能识别事物的庞大而复杂的模型,大脑模型不断地接受外界的信息,并对其进行判断和处理。小孩会说话后,总喜欢问这问那,并不断地说出这是什么那是什么。即使很多是错误的,但经过大人的纠正后,小孩终于能辨识日常中一些常见的事物了,这就是一个监督学习的过程。某一天,大人带着小孩,来到一个农场,远远地就看到一大片绿油油的稻田,小孩兴奋地说出“好大的一片稻田”,大人乐了。因为小孩的大脑已经是一个经过长时间学习训练的“模型”,具备了一定的辨识能力。神经元工作过程第5章

可以理解为n个输入信号(信息),可以理解为对n个输入信号的加权值,从而得到一个综合信号(加权求和)神经元需要对这个综合信号做出反应,即引入一个阈值

并与综合信号比较,根据比较的结果做出不同的反应,即输出。这里用一个被称为激发函数的函数

来模拟其反应。例如,你蒙上眼睛,要判断面前的人是男孩,还是女孩。可以做一个简单假设(大脑只有一个神经元),只用一个输入信号x1=头发长度(如50cm),权重为1,则其综合信号为

我们用一个二值函数作为激发函数:假设阈值

=12,由于

,故

,由此我们可以得到输出1为女孩,0为男孩。神经元工作过程第5章

那么如何确定阈值是12,输出1表示女孩,而0表示男孩呢?这就要通过日常生活中的大量实践认识。数学模型不像人可以通过日常中漫长的学习和实践训练,它只能通过样本数据来训练,从而获得模型的参数并应用。例如,可以选择1000个人,其中500个人是男孩,500个人是女孩,分别量其头发长度,输入以上模型进行训练,训练的准则是判别正确率最大化。(1)取阈值=1,这时判别正确率应该非常低。(2)取值依次增加,假设阈值=12时为最大,达到0.95,当阈值>12时,判别的正确率开始下降,

故可以认为阈值=12时达到判别正确率最大。这个时候,其中95%的男孩对应的函数值为0,

同样95%的女孩对应的函数值为1。如果选用这个模型进行判别,其判别正确率达到0.95。以上两步训练完成即得到参数阈值=12,有95%的可能性输出1表示判别为女孩,输出0表示判别为男孩神经网络数学模型第5章

x为m维向量,y为n维向量,隐含层有q个神经元。假设有N个样本数据,从输入层到隐含层的权重记为从隐含层到输出层的权重记为记第t个样本输入网络时,隐含层单元的输出为输出层单元的输出为,则:这里

为对应输入神经元的阈值,

通常为1,

为对应隐含层神经元的阈值,

通常为1,

分别为隐含层、输出层神经元的激发函数。常用的激发函数如下神经网络数学模型第5章

选定隐含层及输出层神经元的个数和激发函数后,这个神经网络就只有输入层至隐含层、隐含层至输出层的参数未知了。一旦确定了这些参数,神经网络就可以工作了。如何确定这些参数呢?基本思路如下:通过输入层的N个样本数据,使得真实的y值与网络的预测值的误差最小即可,它变成了一个优化问题,记

,则优化问题如下:如何求解这个优化问题获得最优的

呢?常用的有BP算法,这里不再介绍该算法的具体细节,本节着重介绍如何利用Python进行神经网络模型应用。神经网络分类应用举例第5章

取UCI公共测试数据库中的澳大利亚信贷批准数据集作为本例的数据集,该数据集共有14个特征,1个分类标签y(1—同意贷款,0—不同意贷款),共690个申请者记录。x1x2x3x4x5x6x7x8x9x10x11x12x13x14y122.0811.462441.5850001210012130022.6772840.1650000216010029.581.751441.250001228010021.6711.51530111112011120.178.172641.96111402601591015.830.5852881.51120210011117.426.52340.12500002601010058.674.4621183.0411602435611……以前600个申请者作为训练数据,后90个申请者作为测试数据,利用神经网络分类模型预测准确率。神经网络分类应用举例第5章

1.数据获取、训练样本与测试样本的划分

importpandasaspd

data=pd.read_excel('credit.xlsx')#训练用的特征数据用x表示,预测变量用y表示,测试样本则分别记为x1和y1。

x=data.iloc[:600,:14]

y=data.iloc[:600,14]

x1=data.iloc[600:,:14]

y1=data.iloc[600:,14]神经网络分类应用举例第5章

(1)导入神经网络分类模块MLPClassifier。

fromsklearn.neural_networkimportMLPClassifier(2)利用MLPClassifier创建神经网络分类对象clf。

clf=MLPClassifier(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=(5,2),random_state=1)

参数说明如下:

solver:神经网络优化求解算法,包括lbfgs、sgd、adam3种,默认值为adam。

alpha:模型训练误差,默认值为0.0001。

hidden_layer_sizes:隐含层神经元个数。单层神经元设置具体数值即可,本例隐含层有两层,即5×2。

random_state:默认设置为1即可。(3)调用clf对象中的fit()方法进行网络训练。

clf.fit(x,y)(4)调用clf对象中的score()方法,获得神经网络的预测准确率(针对训练数据)。

rv=clf.score(x,y)(5)调用clf对象中的predict()方法可以对测试样本进行预测,获得预测结果。

R=clf.predict(x1)2.神经网络分类模型构建神经网络分类应用举例第5章

importpandasaspddata=pd.read_excel('credit.xlsx')x=data.iloc[:600,:14].valuesy=data.iloc[:600,14].valuesx1=data.iloc[600:,:14].valuesy1=data.iloc[600:,14].valuesfromsklearn.neural_networkimportMLPClassifierclf=MLPClassifier(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=(5,2),random_state=1)clf.fit(x,y);rv=clf.score(x,y)R=clf.predict(x1)Z=R-y1Rs=len(Z[Z==0])/len(Z)print('预测结果为:',R)print('预测准确率为:',Rs)预测结果为:[011110010110001100010110100000000000000001101011010001001000101000000000000000010010110010]预测准确率为:0.8222222222222222神经网络回归应用举例第5章

在发电场中电力输出(PE)与温度(AT)、压力(V)、湿度(AP)、压强(RH)有关,相关测试数据(部分)如表所示ATVAPRHPE8.3440.771010.8490.01480.4823.6458.491011.474.2445.7529.7456.91007.1541.91438.7619.0749.691007.2276.79453.09…………………………需实现的功能如下:(1)构建神经网络回归预测模型。(2)现有某次测试数据AT=28.4、V=50.6、AP=1011.9、RH=80.54,试预测其PE值。神经网络回归应用举例第5章

1.数据获取及训练样本构建#训练样本的特征输入变量用x表示,输出变量用y表示。

importpandasaspd

data=pd.read_excel('发电场数据.xlsx')

x=data.iloc[:,0:4]

y=data.iloc[:,4]2.预测样本的构建#预测样本的输入特征变量用x1表示。

importnumpyasnp

x1=np.array([28.4,50.6,1011.9,80.54])

x1=x1.reshape(1,4)神经网络回归应用举例第5章

(1)导入神经网络回归模块MLPRegressor。

fromsklearn.neural_networkimportMLPRegressor(2)利用MLPRegressor创建神经网络回归对象clf。

clf=MLPRegressor(solver='lbfgs',alpha=1e-5,hidden_layer_sizes=8,random_state=1)

参数说明如下:

solver:神经网络优化求解算法,包括lbfgs、sgd、adam3种,默认为adam。

alpha:模型训练误差,默认为0.0001。

hidden_layer_sizes:隐含层神经元个数。单层神经元设置具体数值即可。如果是多层,如隐含层有两层5×2。

random_state:默认设置为1即可。(3)调用clf对象中的fit()方法进行网络训练。

clf.fit(x,y)(4)调用clf对象中的score()方法,获得神经网络回归的拟合优度(判决系数)。

rv=clf.score(x,y)(5)调用clf对象中的predict()可以对测试样本进行预测,获得预测结果。

R=clf.predict(x1)3.神经网络回归模型构建神经网络回归应用举例第5章

importpandasaspddata=pd.read_excel('发电场数据.xlsx')x=data.iloc[:,0:4]y=data.iloc[:,4]fromsklearn.neural_networkimp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论