【问题标题】:Getting sklearn's partial fit SGDClassifier coefficients获取 sklearn 部分拟合 SGDClassifier 系数
【发布时间】:2020-05-02 09:24:56
【问题描述】:

我正在尝试使用 SGDClassifier 训练逻辑回归模型,我 partial_fit 在小批量上:

sgdLogReg = SGDClassifier(loss='log')
for i in range(math.ceil(len(X_train)/mini_batch_size)):
    sgdLogReg.partial_fit(X_train[i*mini_batch_size:(i+1)*mini_batch_size], 
                          Y_train[i*mini_batch_size:(i+1)*mini_batch_size], 
                          classes=[0,1])

但是,由于我没有使用fit 函数,所以没有设置sgdLogReg.coef_ 属性:

AttributeError: 'SGDClassifier' 对象没有属性 'coef_'

有没有办法使用partial_fit 获取系数向量?

【问题讨论】:

    标签: python machine-learning scikit-learn logistic-regression


    【解决方案1】:

    我认为,您在拟合数据之前调用了coef_。下面的例子显示你可以在.partial_fit之后得到coef_

    from sklearn.datasets import make_classification
    
    X, y = make_classification()
    
    sgd = SGDClassifier()
    
    sgd.partial_fit(X,y, classes=[0,1])
    
    print(sgd.coef_)
    
    # [[-42.53636525  -2.52884548 -39.11102068 -14.67123492  16.20897739
    #   -35.94926059  12.62473266  18.07587488  49.73232778 -16.74330257
    #    78.61713294 -22.21668162  14.89044933 -16.34974837   6.38661036
    #    18.58266319  18.84123791  28.24578991  37.94146501  21.3143532 ]]
    

    【讨论】:

    • 我在打印系数之前执行了partial_fit 操作,但它仍然不起作用。仅供参考,我在 python 3.7.3 上使用 sklearn 版本 0.21.2
    • 我不确定,为什么你没有得到结果。我正在使用 sklearn 23.0 开发版和 python 3。
    猜你喜欢
    • 2014-08-28
    • 2017-06-28
    • 2017-03-10
    • 2013-06-08
    • 2017-05-01
    • 2017-04-02
    • 1970-01-01
    • 2017-08-12
    • 2019-03-08
    相关资源
    最近更新 更多