基于随机森林模型创建GUI界面并成功打包成exe可执行应用程序
在写本博客时,我的心情是无比愉悦的,因为在实现基于随机森林模型创建GUI界面时,就学习了较长一段时间(因为工作原因,一直在忙别的,因此偶尔学习一下基于PYTHON的GUI界面搭建),PYTHON的GUI界面搭建其实就是在源码的基础上封装了一个漂亮的壳子,其实也没有啥东西可学习,估计找个简单的例子学习半天基本就能搞懂了。为什么在这里我一直说我怀着愉悦的心情写这篇博客呢,因为基于随机森林模型创建GUI界面在python中比较简单,关键在于(我也相信很多网友没有尝试或者尝试后者)创建好的GUI界面通过pyinstaller在打包exe可执行应用程序时就遇到很多问题了,其实在这一步我将近搞了有一周时间,终于有一天我仔细查看报错情况,然后一步步添加第三方包而搞清楚了。下面就对该工作在该博客中做一个详细的总结。有啥可讨论的,可联系本人微信176202037。
1.随机森林模型的训练与保存
其实在打包成exe可执行程序的这一步工作,我已经很简单的实现了一个两个数相加的exe(其中一个数是通过.txt文件读入的),参加下图1,这个直接pyinstaller mian.py即可,或者pyinstaller -F -w mian.py(有无-F -w这两个参数的区别可自行去百度),但是将一个很简单的随机森林模型作为第三方文件而导入时就困难重重,原因最后也很简单,就是因为包的版本关系、兼容性以及是否将必要的第三方包一起打包到exe中有很大的关系。
图1 三数相加的GUI生成exe程序界面图
话题有点远,我们再回来,首先第一步工作是训练好随机森林模型并将该模型进行保存,保存和读入的方法基本有两种,第一种是joblib方法生成pkl文件,第二种方法是pickle生成pkl文件,这两种方法也可进行百度(原因不是本博客的重点)。我保存后的随机森林模型叫做model1.pkl。
图2 训练好的随机森林模型
2.编写GUI脚本
在编写GUI界面脚本时,我建议大家多可以去尝试不同的按钮,这样有利于学习GUI界面的学习,例如输入框、下拉菜单、输出框、读入框、图片、字体颜色大小的更改等。这一部分也比较简单,从网上可自行学习,不会的网友不用担心,我会将最终代码放在本博客的最后面供大家参考。
3.生成exe可执行程序
这一部分工作很艰难也费了我很长时间才研究出来,并且因为由于报错pyqt5的包怎么了也没太看懂,我就去安装pyqt5,然后最终连spyder也打不开了,最后又重新卸载了anaconda,重新安装python和第三方包,因此这里提醒大家的是千万别去安装pyqt5,我收了很多博客,很多网友也遇到类似的问题,并且这里和pyqt5安不安装没有任何关系,因此千万别去安装这个包。为什么会报错是因为sklearn里面的包虽然在spyder里面可以完美生成GUI界面,并且也能打开model1文件预测出结果,但是生成exe后就报错,原因就是还得在原有的.py文件中加入一系列的sklearn包,这是最关键的地方。
生成exe的命令,在cmd中pyinstaller -F -w main.py即可。
4.制作GUI界面的脚本程序(非常重要)
由于本程序对于我来说非常辛苦也非常重要,网上没有关于这部分的任何说明,这也是本人第一次将基于随机森林模型设计成GUI界面并打包生成exe文件,因此关于程序代码可私下联系我上面给的微信啊。最后展示的界面图如下所示(界面还需美化):