• 沒有找到結果。

下面使用 ?7 也如提供的框架来构建图形用户界面( 0 以 ) ,读者可以使用该 0 以来探究不同的 回归工具。

在文檔中 关 于 封 面 (頁 180-183)

9.7 使用 Python 的 Tkinter 库创建 GUI

机器学习给我们提供了一些强大的工具,能从未知数据中抽取出有用的信息

^

因 此 ,能否将 这些信息以易于人们理解的方式呈现十分重要。再 者 ,假如人们可以直接与算法和数据交互,将 可以比较轻松地进行解释。如果仅仅只是绘制出一幅静态图像,或者只是在?>^(^命令行中输出 一 些 数 字 ,那么对结果做分析和交流将非常困难。如果能让用户不需要任何指令就可以按照他们 自己的方式来分析数据,就不需要对数据做出过多解释。其中一个能同时支持数据呈现和用户交 亙的方式就是构建一个图形用户界面(

0

1,Graphical User Interface) ,

如图

9-7

所 亦 。

9 - 7

默认的化

6

纽父

?10

化图形用户界面,该界面同时显示了输人数据和一个回归树 模型,其中的参数七。

1

=10

tolS=1.0

9.7

使用

Python

Tkinter

库创建

GUI 177

示例:利用

⑶对回归树调优

⑴ 收 集 数 据 :所提供的文本文件。

(2)准备数据:用?5他0^解析上述文件,得到数值型数据。

(3)分析数据:用丁^ 扯61构建一个0 研来展示模型和数据。

(4)训练算法:训练一棵回归树和一棵模型树,并与数据集一起展示出来。

(5) 測试算法:这里不需要测试过程。

(6) 使用算法:0111使得人们可以在预剪枝时测试不同参数的影响,还可以帮助我们选择 模型的类型。

接下 来将介绍如何用?

7 & ^

来 构 建

0

饥 。首先介绍如何利用一个现有的模块丁

^

时^来构建

G U I ,

之后介绍如何在了匕

^ ^

和绘图库之间交互,最后通过创建

01_11

使人们能够自己探索模型树 和回归树的奥秘。

9 . 7 . 1 f f i T k i n t e d ^ G U I

?

丫也

^

有很多

<^1

框 架 ,其中一个易于使用的丁

^

恤 〖,是随

? > ^ ^

的标准编译版本发布的。

丁让丨她河以在%

1^(^8、Mac 0 8

和大多数的

1^1«

平台上使用。

下面先从最简单的只

6

10

0

过故仔开始。在

?7±00

提本符下输人以下命令:

>>> from Tk in ter import *

>>> root = Tk()

这时会出现一个小窗口或者一些错误提示。要想在窗口上显示一些文字,可以输人如下命令:

>>> myLabel = L a b e l(r o o t , tex t= "H ello W orld”)

>>> myLabel. g r i d ()

输人 完毕后,文本框里就会显示出你刚才输人的文字。非常简单吧!

为了程序的完整,应该再输人以下命令:

'

>>> r o o t . m a i n l o o p ()

这条命令将启动事件循环,使该窗口在众多事件中可以响应鼠标点击、按键和重绘等动作。

丁让丨

! ^

(5

研 由 一 些 小 部 件 (

Widget)

组成。所 谓 小部件,指 的 是 文 本 框 (

TextBox

)、按钮

(Button)

、标 签 (

Label)

和 复 选 按 钮 (

CheckButton)

等对象。在 刚 才的 抱

110

0

仳 例 子 中 ,标 签

0 ^ 3

1

就是其中唯一的小部件。当调用卿

[31^1

4 & £1(>

方 法 时 ,就等于把

!(^

6 1

的位 置 告 诉 了 布 局 管 理 器 (

0 6 ( ^

^

&1«^

过 )。丁

^

汾 红 中 提 供 了 几 种 不 同 的 布 局 管 理 器 ,其中 的

.g r i d ()

方法会把小部件安排在一个二维的表格中。用户可以设定每个小部件所在的行列位 置 。这里没有做任何设定,《

^ ^ ^ 1

会默认显示在

0

0

列 。

下面将所需的小部件集成在一起构建树管理器。建立一个新的

?

(

《文件肽 沾

\?1

肌 扔 ,并 在其中加人程序清单

9-6

的代码。

178

9

章 树 回 归

Label(root, text="Plot Place H o l d e r " ) .grid(row=0, columnspan=3) L a b e l ( r o o t , t e x t = " t o l N " ) . g r i d ( r o w = l , colu m n = 0 )

9.7

使用

Python

Tkinter

库创建

GUI 179

保存程序清单

9-6

的代码并执行

,

可以看到与图

9-8

类似的图。

^ g ^ ^ ^ ^ g ^ ^ j ^ g

Plot Place Holder to lN |lT

tolS |l.0 ReDraw

「 ModelTree

9 - 8使 用 多 个 丁 ^ 访 部 件 创 建 的 树 管 理 器

现在

001

可以按照要求正常运行了,下面利用它来绘图。接下来的小节中将在同一幅图上绘 出原始数据集及其对应的树回归预测值。

9.7.2

集 成

Matplotlib

Tkinter

本书已经用^ ^中10 11化绘制过很多图像,能否将这些图像直接放在0 ^ 上呢?下面将首先介绍

“后端”的概念,然后通过修改M a tp lo tlib后 端 (仅在我们的0切 上 )达到在1 ^他 他0以上绘图的 目的。

^ ^

1011

出的构建程序包含一个前端,也就是面向用户的一些代码,如

9101()

303

01(>

方法等。事实上,它同时创建了一个后端,用于实现绘图和不同应用之间接口。通过改变后端可

以将图像绘制在

?—

PDF

8

0

等格式的文件上。下面将设置后端为丁

^ 8 8 (

88

是一个匚

++

在文檔中 关 于 封 面 (頁 180-183)