0

我正在構建一個神經網絡,目的是在未來對新數據做出預測。我首先使用sklearn.preprocessing預處理訓練數據,然後訓練模型,然後進行一些預測,然後關閉程序。將來,當新數據進入時,我必須使用相同的預處理比例將新數據轉換爲模型之前進行轉換。目前,我必須加載所有舊數據,適合預處理器,然後用這些預處理器轉換新數據。有沒有辦法讓我保存預處理對象對象(如sklearn.preprocessing.StandardScaler),以便我可以加載舊對象而不必重新創建對象?SKlearn:有沒有辦法保存預處理對象?

+1

這僅僅是一個Python對象,你可以泡製它像任何其他Python對象。 – lejlot

+0

您可以將所有預處理和訓練結合到一個管道對象中,然後使用joblib對其進行簡單的醃製(推薦用於scikit) –

回答

1

正如lejlot所述,您可以使用庫pickle將訓練好的網絡作爲文件保存在硬盤中,然後您只需加載它即可開始進行預測。

下面是關於如何使用泡菜保存和加載Python對象的例子:

import pickle 
import numpy as np 

npTest_obj = np.asarray([[1,2,3],[6,5,4],[8,7,9]]) 

strTest_obj = "pickle example XXXX" 


if __name__ == "__main__": 
    # store object information 
    pickle.dump(npTest_obj, open("npObject.p", "wb")) 
    pickle.dump(strTest_obj, open("strObject.p", "wb")) 

    # read information from file 
    str_readObj = pickle.load(open("strObject.p","rb")) 
    np_readObj = pickle.load(open("npObject.p","rb")) 
    print(str_readObj) 
    print(np_readObj) 
相關問題