关于第一篇博客(第七章学习)的补充——LM神经网络模型

更新时间:2023-06-09 10:49:16 阅读: 评论:0

关于第⼀篇博客(第七章学习)的补充——LM神经⽹络模型
在之前做上机实验的时候,由于在Python(x,y)的环境下安装theano和keras⼀直出错,因此,略过了LM神经⽹络分类模型的训练。这⼏天还是不⽢⼼,便⼜进⾏了尝试,尝试结果已经在第⼀篇博客中有所补充,在此另外再单出来显得更加清楚些。
1.theano+keras安装
由于⽹上⼤部分教程都是推荐Anaconda,博主⼀狠⼼便将电脑上所有Python相关的都卸载删除了,打算从头开始,按照教程⼀步⼀步来。
主要参考的教程为:
利⽤这个教程主要安装了Anaconda和mingw,但是在安装theano的时候还是出现各种各样的问题,即使参照教程中所说将缺的⽂件包补上,也还是不⾏,最再次卸载已安装的theano,转⽽参考以下博客才最终完成:
参照这篇⽂章中的做法先在命令⾏中输⼊pip install keras安装keras,默认会同时安装keras和theano,但这个theano测试依旧会出问题,因此从site-packages中删除这个⽂件包,然后从其他平台上下载theano安装包,将解压包中的theano⽂件直接复制到site-packages ⽂件中。(注意:⽤pip tup.py ins
tall⽅法直接安装还是可能会出问题,但直接复制过来是没有问题的。)
最后虽然st()出来有很多警告,但是输⼊以下代码:
import theano
fig.blas.ldflags
结果没有报错,说明theano已经安装成功。
然后输⼊代码:
import keras
这个可能会报错,错误为“没有tensorflow”,这个报错的信息,因为之前在⿎捣的时候博主已经试过⽆数次了,因此,这⼀次在安装好keras之后就直接去C:\Urs\rt(当前⽤户名).keras中将keras.json⽂件中的backend修改为theano,以将默认后端从tensorflow改编为theano(注意1:之所以要修改是因为tensorflow并不适合在Python2.7和Windows环境中。注意2:有些博客中提到将keras⽂件包中的backend⽂件夹⾥的init.py中的backend利⽤同样的⽅法修改,经博主尝试,这边改了是没有⽤的。)
最后,在修改了后端的前提下,本代码的输出结果为:
说明keras已经安装成功,可以使⽤。
⾄此,困扰了好⼏天的theano+keras安装终于成功,这还是没有加GPU加速的情况,考虑到电脑配置问题,博主就先不考虑加速了。
主要思考有以下⼏点:
1.Anaconda看样⼦的确要⽐Python(x,y)更为⼤众,也更能找到⼀些参考教程,在刚开始学习Python的时候,还是可以考虑使⽤Anaconda,不过两个都是集成环境,具体到达哪个更好,博主⽆法做判断,毕竟⽹上也的确有使⽤Python(x,y)安装成功的;
2.不要直接⽤pip安装theano,虽然很多教程都是这样的,但是经博主实验,直接⽤pip,基本都会缺⽂件,⽽补上⽂件效果也不理想,还是直接从其他平台下资源⽐较⽅便;
3.安装过程中,要多⽅尝试,不同教程提供的不同解决⽅案可能有⼀些适⽤,有⼀些不适⽤,要⾃我选择。
4.theano安装测试,有些教程推荐st(),但博主亲历,st()实在太费时间,博主花了
⼀个晚上还没有测试完,还是直接使⽤“fig.blas.ldflags”,⾄少这个没报错,说明安装时成功了的,缺⼀些东西对于后⾯使⽤keras问题不⼤,因此就可以直接使⽤keras了。
形容落叶的诗句
2.LM神经⽹络模型Python实现
在好不容易安装完成之后,博主当然⽴刻把本⽂中所使⽤的LM神经⽹络分类模型给尝试了。
代码如下:
同样绘制混淆矩阵,代码如下:
混淆矩阵绘制如下图:
分析同上⽂中是⼀样的,此处不再赘述。 最后在同⼀张图内,画出前⽂中所⽤CART决策树模型和这⾥添加的LM神经⽹络模型的ROC曲线,以做对⽐。代码如下:
###构建神经⽹络分类模型
dels import Sequential #导⼊神经⽹络初始化函数
from import Den, Activation #导⼊神经⽹络层函数、激活函数
net = Sequential() #建⽴神经⽹络
net.add(Den(input_dim = 3, output_dim = 10)) #添加输⼊层(3节点)到隐藏层(10节点)的连接
net.add(Activation('relu')) #隐藏层使⽤relu 激活函数忘记忧伤
net.add(Den(input_dim = 10, output_dim = 1)) #添加隐藏层(10节点)到输出层(1节点)的连接
net.add(Activation('sigmoid')) #输出层使⽤sigmoid 激活函数
net.fit(data_train[:,:3], data_train[:,3], nb_epoch=1000, batch_size=1) #训练模型,循环1000次
net.save_weights('C:/Urs/Administrator/Desktop/xy/del') #保存模型
冬日的诗句
predict_result = net.predict_class(data_train[:,:3]).reshape(len(data_train)) #预测结果变形
from  cm_plot import  * #导⼊⾃⾏编写的混淆矩阵可视化函数
cm_plot(data_train[:,3], predict_result).show() #显⽰混淆矩阵可视化
from  ics import  roc_curve #导⼊ROC 曲线函数
import  matplotlib.pyplot as  plt
fpr1, tpr1, thresholds1 = roc_curve(data_test[:,3], net.predict(data_test[:,:3]).reshape(len(data_test)), pos_label=1)
fpr2, tpr2, thresholds2 = roc_curve(data_test[:,3], tree.predict_proba(data_test[:,:3])[:,1], pos_label=1)
plt.plot(fpr1, tpr1, linewidth=2, label = 'ROC of LM', color = 'blue') #作出ROC 曲线
plt.plot(fpr2, tpr2, linewidth=2, label = 'ROC of CART', color = 'green')
plt.xlabel('Fal Positive Rate') #坐标轴标签
英雄联盟特权plt.ylabel('True Positive Rate') #坐标轴标签
美女屁股照片plt.ylim(0,1.05) #边界范围
plt.xlim(0,1.05) #边界范围
plt.legend(loc=4) #图例
日本人变态plt.show() #显⽰作图结果
最后两种模型的ROC曲线如下图所⽰:几岁退休
LM神经⽹络的ROC曲线完全包住了CART决策树模型的ROC曲线,由此可以看出,LM神经⽹络模型的性能是⽐CART决策树模型要好⼀些的。
⾄此,关于第⼀篇博客的上机实验,才算彻底完成。

本文发布于:2023-06-09 10:49:16,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/910576.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模型   教程   安装   神经   博主   问题
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图