在二元分类的Logistic回归中,在使用predict()
时,分类器如何决定类(1/0)?
它是基于概率阈值,如果> 0.5然后1还是0吗?如果是,可以手动更改此阈值吗?
我知道我们从predict_prob()
获得概率,但我对predict()
函数感到好奇!
答案 0 :(得分:1)
Logistic回归与其他分类模型一样,返回每个类的概率。作为二元预测器,它只有两个类。
从source code,predict()
返回具有最高类概率的类。
def predict(self, X):
"""Predict class labels for samples in X.
Parameters
----------
X : {array-like, sparse matrix}, shape = [n_samples, n_features]
Samples.
Returns
-------
C : array, shape = [n_samples]
Predicted class label per sample.
"""
scores = self.decision_function(X)
if len(scores.shape) == 1:
indices = (scores > 0).astype(np.int)
else:
indices = scores.argmax(axis=1)
return self.classes_[indices]
所以是的,在这种情况下,它返回概率大于50%的类,因为类概率的总和= 1。