python--pickle序列化(持久化)

  机器学习过程分为训练过程和预测过程。训练过程得到一个模型,预测过程得到预测结果。为了节省时间,最好能够在每次执行预测时,调用已经构造好的模型,而不是每次预测前都需要重新训练一次模型。

  以“决策树”为例,最好能够在每次执行分类时调用已经构造好的决策树。可以使用Python中的pickle模块序列化对象。序列化对象可以在磁盘上保存对象pickle.dump(),并在需要的时候读取出来pickle.load()。任何对象都可以执行序列化操作,字典对象也不例外!!!

代码:

 1 import pickle
 2 #将决策树模型inputTree(字典对象)存储在文件filename中
 3 def storeTree(inputTree,filename):
 4     fw=open(filename,'w')
 5     pickle.dump(inputTree,fw)
 6     fw.close()
 7 #读取文件filename中的决策树
 8 def grabTree(filename):
 9     fr=open(filename)
10     return pickle.load(fr)

打开Dos客户端测试:

In [11]:用字典存储一颗决策树,myTree={'no surfacing':{0:'no',1:{'flippers':{0:'no',1:'yes'}}}}

In [12]: 得到文件"classifierStorage.txt",打开文件看看序列化后的样子:

In [13]: 读取“classifierStorage.txt”中的决策树

Out [13]: 输出“myTree”

原文地址:https://www.cnblogs.com/cygalaxy/p/6841968.html