【问题标题】:How to save 2 sklearn models in one file如何将 2 个 sklearn 模型保存在一个文件中
【发布时间】:2018-10-16 12:25:20
【问题描述】:

This page 显示使用pickle 保存模型的方法:

>>> import pickle
>>> s = pickle.dumps(clf)
>>> clf2 = pickle.loads(s)

joblib

>>> from sklearn.externals import joblib
>>> joblib.dump(clf, 'filename.joblib') 
>>> clf = joblib.load('filename.joblib') 

如果需要保存 2 个模型怎么办?我显然可以将它们保存在 2 个单独的文件中,但我可以将它们一起保存在一个文件中吗?是否可以保存一个包含 2 个模型的列表:

modlist = [clf1, clf2]

如何将modlist 保存在一个文件中?

【问题讨论】:

    标签: neural-network pickle joblib


    【解决方案1】:

    您可以使用 pickle 转储/加载各种数据结构。尤其是 sklearn 拟合模型的列表就是一个例子:

    from sklearn import svm
    from sklearn import datasets
    from sklearn.naive_bayes import MultinomialNB
    import pickle
    
    clf1 = svm.SVC(gamma='scale')
    clf2 = MultinomialNB()
    
    iris = datasets.load_iris()
    X, y = iris.data, iris.target
    clf1.fit(X, y)  
    clf2.fit(X, y)  
    
    filename = "models.sav"
    
    modlist = [clf1, clf2]
    
    s = pickle.dump(modlist, open(filename, 'wb'))
    
    modlist_loaded = pickle.load(open(filename, 'rb'))
    
    clf1_loaded = modlist_loaded[0]
    clf2_loaded = modlist_loaded[1]
    
    print clf1_loaded.predict(X[:10])
    print clf2_loaded.predict(X[:10])
    

    让我知道这是否适合你。

    【讨论】:

    • 完美答案!
    • gamma='scale' 需要省略,SVC 分类器才能在此处工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 2020-05-18
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    • 2019-07-19
    相关资源
    最近更新 更多