首頁常見問題正文

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

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

IT培訓(xùn)班

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

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

  代碼①導(dǎo)入sklearn.externals模塊。

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

  代碼③打印sklearn_data。

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

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

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

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

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!