首页常见问题正文

数据对象的读写:使用sklearn读写持久化对象

更新时间:2022-11-25 来源:黑马程序员 浏览量:

IT培训班

  除了pickle方法,sklearn的externals.Joblib模块同样提供了读写持久化数据对象的方法。示例如下。

from sklearn.externals import joblib             # ①
# 读取数据对象
sklearn_data = joblib.load('sklearn_pickle.gz')  # ②
print(sklearn_data)                              # ③
# 对象持久化
joblib.dump(sklearn_data, 'sklearn_pickle_output.gz', compress=3, protocol=4)
                                                 # ④

  代码①导入sklearn.externals模块。

  代码②调用joblib.load方法读取sklearn_pickle.gz的文件。

  代码③打印sklearn_data。

  代码④调用joblib.dump方法将sklearn_data保存为sklearn_pickle_output.gz文件,同时设置压缩率为3,protocol为4。

  (1)compress设置文件的压缩级别,可设置为[0,9]的整数值、布尔型或二元数组:当设置为布尔型且值为True时,默认压缩级别为3;设置为二元数组时,第1个值必须是支持压缩的格式,如zlib、gzip、bz2、lzma等,第2个值是压缩级别,压缩级别越高,压缩率越高,同时需要执行的时间越长。

  (2)protocol是pickle.dump中的参数,这里与pickle.coad设置的参数是相同的调用方法,可设置为[0,4]的任意值,默认为3。该值越高,读取生成的pickle所需的Python版本就越新。

  在实际应用时,sklearn.externals相对于pickle在大数据量下拥有更好的性能。NumPy数据(sklearn的默认数据格式)要优于pickle原生的持久化方法,尤其是其支持多种压缩级别和格式的设置,这将大大提高持久化的可操作空间。

分享到:
在线咨询 我要报名
和我们在线交谈!