实现一个简单的决策树模型训练预测界面(打包exe)
前面写了几个机器学习算法模型,想要做一个可视化的界面,方便数据导入和训练,经过多方调查,选择了比较好入门的wxPython来做GUI。(python版本是3.6.3)
一、安装GUI工具wxPython
wxPython下载地址
我用的是anaconda,因此将下载好的whl文件拷贝至anaconda安装位置下的Scripts文件夹(\Anaconda\Scripts),在该文件夹下,shift+右键,打开shell窗口。
>pip3 install wxPython-4.0.3-cp36-cp36m-win_amd64.whl
二、安装打包工具Pyinstaller
>pip3 install pyinstaller
三、界面代码
模型用的是我前面写过的决策树和绘制决策树,绘制决策树中有稍作改动
决策树模型代码
1.导入库
注意:虽然没用到sip,但是在打包中需要用到,否则报错”ModuleNotFoundError: No module named ‘PyQt5.sip’”
问题解决参考
from PyQt5 import sip
import re
import os
import wx
import pandas as pd
import DecisionTREE
import DrawDecisionTREE
2.初始化函数init(self,parent,title)
def __init__(self, parent, title):
####初始化界面####
super(Mywin, self).__init__(parent, title = title,size = (800,600))
####定义面板窗口####
panel = wx.Panel(self)
2.1字体设置
wx.Font(pointSize,family,style,weight,underline,faceName,encoding) 各参数含义
####字体设置,(大小、样式等)####
font_title = wx.Font(30, wx.ROMAN, wx.NORMAL, wx.BOLD)#标题
font_btn = wx.Font(15, wx.ROMAN, wx.ITALIC, wx.NORMAL)#按键
font_text = wx.Font(15,wx.ROMAN,wx.NORMAL,wx.NORMAL)#文本
font_hint1 = wx.Font(10,wx.ROMAN,wx.NORMAL,wx.NORMAL)#提示1,用于操作提示/警告
font_hint2 = wx.Font(15,wx.ROMAN,wx.NORMAL,wx.NORMAL)#用于显示预测结果
2.2文本设置
父类是panel,即在panel窗口上布置。
pos用于设置位置,size用于设置大小。
SetForegroundColour设置文本颜色,SetBackgroundColour设置文本背景颜色,SetFont设置文本大小
####固定文本设置####
self.title = wx.StaticText(panel,-1,"决策树",pos=(650,0),size=(80,30),style=wx.ALIGN_RIGHT)#右对齐
self.title.SetForegroundColour((255,0,255))#设置文本颜色
self.title.SetBackgroundColour((255,255,0))#设置文本背景颜色
self.title.SetFont(font_title)
self.author = wx.StaticText(panel,-1,"author:htshinich