【问题标题】:Manually build logistic regression model for prediction in Sklearn在 Sklearn 中手动构建用于预测的逻辑回归模型
【发布时间】:2018-08-18 10:31:29
【问题描述】:

我想知道如何通过显式设置 m.coef_ 和 m.intercept_ 的值来手动构建 LogisticRegression 模型“m”。这听起来很奇怪,但在某些情况下,我尝试对所有情况均为负 (0) 的数据进行分类,并且模型的拟合会产生错误,因此我想设置 f.e.

m = LogisticRegression()
m.coef_=np.array([[0,0]]) and
m.intercept_=-1000
m.classes_=np.array([0, 1])
x = np.array([[1, 1],[2, 2]])

m.predict(x) 工作正常,但 m.predict_prob(x) 会出错。


*TypeE
rror                                 Traceback (most recent call last)
<ipython-input-78-e122e3e7c447> in <module>()
----> 1 p.predict_proba(x)
~/anaconda3/lib/python3.6/site-packages/sklearn/linear_model/logistic.py in predict_proba(self, X)
   1334         calculate_ovr = self.coef_.shape[0] == 1 or self.multi_class == "ovr"
   1335         if calculate_ovr:
-> 1336             return super(LogisticRegression, self)._predict_proba_lr(X)
   1337         else:
   1338             return softmax(self.decision_function(X), copy=False)
~/anaconda3/lib/python3.6/site-packages/sklearn/linear_model/base.py in _predict_proba_lr(self, X)
    338         prob = self.decision_function(X)
    339         prob *= -1
--> 340         np.exp(prob, prob)
    341         prob += 1
    342         np.reciprocal(prob, prob)
TypeError: ufunc 'exp' output (typecode 'd') could not be coerced to provided output parameter (typecode 'l') according to the casting rule ''same_kind''*

我怎样才能避免这个错误,或者更好的是,如何说服 m.fit(X,y) 也只与数据中的一个类一起工作。

最好的问候

【问题讨论】:

    标签: python scikit-learn logistic-regression


    【解决方案1】:

    您将系数和截距设置为整数。我将它们设置为浮点数,predict_proba() 正在工作:

    m = LogisticRegression()
    m.coef_= np.array([[0.,0.]]) and
    m.intercept_ = -1000.
    m.classes_=np.array([0, 1])
    x = np.array([[1, 1],[2, 2]])
    

    注意零后的.

    In [12]: m.predict_proba(x)
    Out[12]:
    array([[1., 0.],
           [1., 0.]])
    

    【讨论】:

      猜你喜欢
      • 2014-07-29
      • 2018-05-01
      • 2018-11-29
      • 2015-09-23
      • 2019-04-11
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多