所以我使用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'的参数,但我不确定它们是不是我正在寻找的,或者它们是否在工作......
答案 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