代码之家  ›  专栏  ›  技术社区  ›  Hani Gotc

使用增量分类器sklearn进行分类后,文件大小会增加和减少

  •  1
  • Hani Gotc  · 技术社区  · 7 年前

    我正在使用 PassiveAggressiveRegressor 增量分类器。每次我使用 partial_fit

    from sklearn import linear_model
    import numpy as np
    import time
    
    X = np.array(range(1000))
    y = np.array([x + random.random() for x in X])
    X = X.reshape(1000,1)
    
    model = linear_model.PassiveAggressiveRegressor()
    model.partial_fit(X, y)
    cPickle.dump(model, open('model.pkl', 'wb'))
    
    
    for i in range(0,10):
        time.sleep(1)
        model = cPickle.load(open('model.pkl', 'rb'))
        model.partial_fit(X, y)
        cPickle.dump(model, open('model.pkl', 'wb'))
    

    我不明白为什么是文件模型。pkl改变大小。有时它是 s的大小变为889字节,然后降至886字节。这正常吗?它在做自己的事情?或者我的代码有问题?

    1 回复  |  直到 7 年前
        1
  •  1
  •   seralouk    7 年前

    这可以通过原始pickle使用其他协议来解释。

    例如,尝试指定 protocol=2 pickle.dump 然后再次测试。因此,请尝试始终指定相同的协议。

    一般来说,二进制pickle的大小应该小得多。

    1. 协议版本0是原始的ASCII协议,与Python的早期版本向后兼容。
    2. 协议版本1是旧的二进制格式,它也与Python的早期版本兼容。