我正在使用scikit-learn的Perceptron算法来进行二进制分类。当使用库中的其他一些算法(RandomForestClassifer、LogisticRegression等)时,我可以使用model.predict_proba()让算法输出每个示例获得正(1)的概率。有什么方法可以为Perceptron算法获得类似的输出吗?
我所能达到的最接近的是model.decision_function(),它根据到超平面的有符号距离为示例输出一个置信度评分,但我不知道如何将这些信任分数转换成我想要的概率数字。
model.predict()也只返回二进制值。
发布于 2015-08-03 17:29:43
我想你想要的是CalibratedClassifierCV
from sklearn import linear_model
from sklearn.datasets import make_classification
from sklearn.calibration import CalibratedClassifierCV
# Build a classification task using 3 informative features
X, y = make_classification(n_samples=1000,
n_features=10,
n_informative=3,
n_redundant=0,
n_repeated=0,
n_classes=2,
random_state=0,
shuffle=False)
per = linear_model.Perceptron()
clf_isotonic = CalibratedClassifierCV(per, cv=10, method='isotonic')
clf_isotonic.fit(X[:900], y[:900])
preds = clf_isotonic.predict_proba(X[900:])
print preds编辑您也可以使用它使其他linear_models生成分类问题的概率
https://stackoverflow.com/questions/31792580
复制相似问题