【发布时间】: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