简单的Tkinter库创建GUI的例子可参考:
http://blog.csdn.net/lilong117194/article/details/78456376

下面是代码:

# -*- coding: utf-8 -*-
"""
Created on Mon Nov 06 10:24:42 2017"""
from numpy import *
from Tkinter import *
import regTrees
import matplotlib # 导入matplot文件
matplotlib.use('TkAgg')  # 设置后端TkAgg
# 将TkAgg和matplotlib图链接起来
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.figure import Figure# 绘制树
def reDraw(tolS,tolN): reDraw.f.clf()        # 清空之前的图像reDraw.a = reDraw.f.add_subplot(111) # 各个子图像也被清除,重新添加新图if chkBtnVar.get():  # 检查复选框是否被选中if tolN < 2: tolN = 2myTree=regTrees.createTree(reDraw.rawDat, regTrees.modelLeaf,regTrees.modelErr, (tolS,tolN))yHat = regTrees.createForeCast(myTree, reDraw.testDat, regTrees.modelTreeEval)else:myTree=regTrees.createTree(reDraw.rawDat, ops=(tolS,tolN))yHat = regTrees.createForeCast(myTree, reDraw.testDat)reDraw.a.scatter(reDraw.rawDat[:,0], reDraw.rawDat[:,1], s=5) # 绘制真实值reDraw.a.plot(reDraw.testDat, yHat, linewidth=2.0) # 绘制预测值reDraw.canvas.show()def getInputs(): # 获取用户输入try: tolN = int(tolNentry.get()) # 期望输入是整数,在Entry部件上调用.get()方法except: # 清除错误用默认值替换tolN = 10 print "enter Integer for tolN" tolNentry.delete(0, END)  # 清除错误得输入,并恢复默认值tolNentry.insert(0,'10')try: tolS = float(tolSentry.get())   # 期望输入是浮点数except: tolS = 1.0 print "enter Float for tolS"tolSentry.delete(0, END) tolSentry.insert(0,'1.0')return tolN,tolS  # 返回用户的输入值def drawNewTree():  # 从输入文本框中获取参数tolN,tolS = getInputs() # 该方法得到输入框的值reDraw(tolS,tolN)  # 调用reDraw绘制图# 布局GUI代码
root=Tk()# 创建一个TK类型的根部件
reDraw.f = Figure(figsize=(5,4), dpi=100)   # 创建画布
reDraw.canvas = FigureCanvasTkAgg(reDraw.f, master=root)
reDraw.canvas.show()
reDraw.canvas.get_tk_widget().grid(row=0, columnspan=3)Label(root, text="tolN").grid(row=1, column=0)  # grid方法设置行和列的位置
tolNentry = Entry(root)      # Entry:允许单行输入的文本输入框
tolNentry.grid(row=1, column=1) # 设置文本框的位置
tolNentry.insert(0,'10')
Label(root, text="tolS").grid(row=2, column=0)
tolSentry = Entry(root) # 文本输入框放在root中
tolSentry.grid(row=2, column=1)
tolSentry.insert(0,'1.0')
# 点击ReDraw按钮时,就调用drawNewTree()函数
Button(root, text="ReDraw", command=drawNewTree).grid(row=1, column=2, rowspan=3)chkBtnVar = IntVar()  # 按钮整数值,为了读取Checkbutton的值
chkBtn = Checkbutton(root, text="Model Tree", variable = chkBtnVar) # Checkbutton复选按钮
chkBtn.grid(row=3, column=0, columnspan=2)reDraw.rawDat = mat(regTrees.loadDataSet('sine.txt'))
reDraw.testDat = arange(min(reDraw.rawDat[:,0]),max(reDraw.rawDat[:,0]),0.01)
reDraw(1.0, 10)root.mainloop()

运行结果:

分类回归树:

模型树:

构建尽可能大的树:

注意:这里的import regTrees用的是《机器学习实战》里的源码,但是有两处需要改动的地方,具体查看:
http://blog.csdn.net/lilong117194/article/details/78444615

通过GUI可以更友好的调节参数和模型来训练模型和学习算法。。

树回归--python Tkinter库创建GUI(2)相关推荐

  1. 使用python+Tkinter库构建GUI应用工具 - 个性签名工具

    使用python+Tkinter库构建GUI应用工具 - 个性签名工具 安装Tkinter及pillow库 pip install tkinter # 安装tkinter库 pip install p ...

  2. python tkinter库、添加gui界面_使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)...

    使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二),创建一个,界面,布局,文件,路径 使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二) ...

  3. python tkinter库实现华氏温度摄氏温度转换

    python tkinter库实现华氏温度摄氏温度转换 功能要求 创建GUI窗口 创建文本标签 创建可输入文本 按钮控件 创建显示文本框 温度转换函数-g 总程序 结束啦 功能要求 创建一个图形窗口, ...

  4. Python treelib库创建多叉树的用法介绍

    Python treelib库创建多叉树的用法介绍 treelib 库是一个 Python 的第三方库.这个库实现了一些多叉树相关的常用方法. 一.安装treelib pip install tree ...

  5. python tkinter库 密码实时显示_python tkinter库实现气泡屏保和锁屏

    本文实例为大家分享了python tkinter库实现气泡屏保和锁屏的具体代码,供大家参考,具体内容如下 显示效果如下: 代码: import random import tkinter import ...

  6. python tkinter库函数详解_Python使用tkinter库进行GUI编程中常用事件处理方式汇总

    在Python GUI编程中,控件响应事件处理是常用的操作.tkinter库中事件类型有哪些?事件绑定方式有几种?如何编写事件处理函数?这些都是必须要面对的问题.今天,我们对上述内容进行简要汇总. 事 ...

  7. 基于tkinter模块创建GUI程序(python)

    文章目录 前言 一.Tkinter是什么? 二.使用步骤 1.创建应用程序的主窗口对象(根窗口) 2.tkinter根窗口 3.组件拼图 4.Label标签 布局管理系统 5.pack布局管理器 6. ...

  8. Python+tkinter库实现简单图书管理系统

    文章目录 前言 一.MySQL是什么? 二.Tkinter库 三.Code步骤 1.引入库 2.使用tkinter搭建系统 3.定义函数(发送消息,操作mysql数据库) 总结 前言 使用mysql数 ...

  9. python tkinter库 pack布局方法调用

    python的tkinter库pack布局方法调用 这个布局简单 tkinter.Label(window,text='今晚去庆祝',bg="back",fg='white').p ...

最新文章

  1. C#与RSS亲密接触
  2. 仅需6步,教你轻易撕掉app开发框架的神秘面纱(5):数据持久化
  3. TF之DNN:TF利用简单7个神经元的三层全连接神经网络【2-3-2】实现降低损失到0.000以下
  4. how does SAP CRM partner function work - how is account change working
  5. python查询模块所有类_python 小技巧(import模块、查询类继承关系、安装包)
  6. web前端开发工程师必会的5种网页布局方法?
  7. VMware Workstation 12.5 安装Mac OS X
  8. Python中MD5加密
  9. U811.1接口EAI系列之三--采购订单生成--VB语言
  10. tomcat开启远程调试
  11. 王换招计算机组成与设计pdf,计算机组成原理答案(唐朔飞).pdf
  12. Win10 激活工具被删除或“无法成功完成操作,因为文件包含病毒或潜在的垃圾软件”
  13. VS插件AnkhSVN的安装,设置和使用
  14. 无法直接复制文件到ubuntu虚拟机解决
  15. 【kubernetes】k8s使用客户端连接haproxy访问高可用集群流程详细说明【使用kubeconfig连接haproxy】【kubeconfig配置全部流程】
  16. JAVA射线_射线法 - 萌德真帅 - 博客园
  17. post入门篇:请求头/响应头、cookie、URL结构/编码、数据编码、winHttpRequest、post分析技巧、伪装IP
  18. java向上转型与向下转型
  19. 『中级篇』docker-swarm创建一个多节点集群(43)
  20. 2021年中国帆船短裤市场趋势报告、技术动态创新及2027年市场预测

热门文章

  1. OpenGL 绘制彩色三角形的实例
  2. TCP的三次握手和四次挥手的过程?
  3. C++STL的queue容器
  4. C++变量、函数在内存中的情况
  5. java数据结构有哪些_java有哪些数据结构?
  6. 「Python」在虚拟环境中使用pip
  7. 73.JVM内存基础结构,参数分类,推荐的配置项,参数混用问题,常用工具,常用命令
  8. shell编程--基本格式,基本语法,运算符,expr,(()),$[]
  9. Java中session的过时时间配置,session过时的优先级
  10. 04-Servlet入门+http协议