Sci-kit分类阈值

时间:2016-07-27 17:44:50

标签: python scikit-learn classification

所以我使用scikit-learn做一些二进制分类,现在我正在尝试使用Logistic回归分类器。在对分类器进行训练之后,我打印出分类结果以及它们在每个类中的概率:

logreg = LogisticRegression()
logreg.fit(X_train,y_train)
print logreg.predict(X_test)
print logreg.predict_proba(X_test)

所以我得到类似的东西:

[-1 1 1 -1 1 -1...-1]
[[  8.64625237e-01   1.35374763e-01]
 [  3.57441028e-01   6.42558972e-01]
 [  1.67970096e-01   8.32029904e-01]
 [  9.20026249e-01   7.99737513e-02]
 [  1.20456011e-02   9.87954399e-01]
 [  6.48565595e-01   3.51434405e-01]...]

等...所以每当概率超过0.5时,它就像是被分类为的对象。我正在寻找一种方法来调整这个数字,以便例如,在第1类中的概率必须超过.7才能被分类。有没有办法做到这一点?我正在看一些已经像'tol'和'weight'的参数,但我不确定它们是不是我正在寻找的,或者它们是否在工作......

1 个答案:

答案 0 :(得分:0)

您可以这样设置THRESHOLD

THRESHOLD = 0.7
preds = np.where(logreg.predict_proba(X_test)[:,1] > THRESHOLD, 1, 0)

请参阅sklearn LogisticRegression and changing the default threshold for classification