
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.4 决策树的存储
构造决策树是很耗时的任务,即使处理很小的数据集,如前面的样本数据,也要花费几秒时间,如果数据集很大,将会耗费很多计算时间,而用构建好的决策树解决分类问题,可以很快完成。因此,为了节省计算时间,最好能够在每次执行分类时调用已经构造好的决策树。为了解决这个问题,需要使用Python模块pickle序列化对象。序列化对象可以在磁盘上保存对象,并在需要的时候读取出来。
假设已经得到决策树{'有自己的房子': {0: {'有工作': {0: 'no', 1: 'yes'}}, 1: 'yes'}},使用pickle.dump存储决策树。

在该Python文件的相同目录下,会生成一个名为classifierStorage.txt的文件,这个文件以二进制形式存储着决策树。可以使用sublime txt打开看存储结果。
这个是二进制存储文件,无须看懂里面的内容,会存储、会用即可。将决策树存储成这个二进制文件后,下次怎么使用呢?很简单,使用pickle.load载入即可,编写代码如下:

如果在该Python文件的相同目录下,有一个名为classifierStorage.txt的文件,我们就可以运行上述代码。运行结果如图3-5所示。

图3-5 运行结果
从上述结果中可以看到,我们顺利加载了存储决策树的二进制文件。