首頁常見問題正文

數(shù)據(jù)對象的讀寫:使用sklearn讀寫持久化對象

更新時間:2022-11-25 來源:黑馬程序員 瀏覽量:

IT培訓班

  除了pickle方法,sklearn的externals.Joblib模塊同樣提供了讀寫持久化數(shù)據(jù)對象的方法。示例如下。

from sklearn.externals import joblib             # ①
# 讀取數(shù)據(jù)對象
sklearn_data = joblib.load('sklearn_pickle.gz')  # ②
print(sklearn_data)                              # ③
# 對象持久化
joblib.dump(sklearn_data, 'sklearn_pickle_output.gz', compress=3, protocol=4)
                                                 # ④

  代碼①導入sklearn.externals模塊。

  代碼②調(diào)用joblib.load方法讀取sklearn_pickle.gz的文件。

  代碼③打印sklearn_data。

  代碼④調(diào)用joblib.dump方法將sklearn_data保存為sklearn_pickle_output.gz文件,同時設(shè)置壓縮率為3,protocol為4。

  (1)compress設(shè)置文件的壓縮級別,可設(shè)置為[0,9]的整數(shù)值、布爾型或二元數(shù)組:當設(shè)置為布爾型且值為True時,默認壓縮級別為3;設(shè)置為二元數(shù)組時,第1個值必須是支持壓縮的格式,如zlib、gzip、bz2、lzma等,第2個值是壓縮級別,壓縮級別越高,壓縮率越高,同時需要執(zhí)行的時間越長。

 ?。?)protocol是pickle.dump中的參數(shù),這里與pickle.coad設(shè)置的參數(shù)是相同的調(diào)用方法,可設(shè)置為[0,4]的任意值,默認為3。該值越高,讀取生成的pickle所需的Python版本就越新。

  在實際應(yīng)用時,sklearn.externals相對于pickle在大數(shù)據(jù)量下?lián)碛懈玫男阅?。NumPy數(shù)據(jù)(sklearn的默認數(shù)據(jù)格式)要優(yōu)于pickle原生的持久化方法,尤其是其支持多種壓縮級別和格式的設(shè)置,這將大大提高持久化的可操作空間。

分享到:
在線咨詢 我要報名
和我們在線交談!