Python Scikit-learn Perceptron输出概率

时间:2015-08-03 16:43:42

标签: python scikit-learn neural-network classification perceptron

我使用scikit-learn的Perceptron算法进行二进制分类。当使用库中的一些其他算法(RandomForestClassifer,LogisticRegression等)时,我可以使用model.predict_proba()让算法输出每个示例得到正(1)的概率。有没有办法为Perceptron算法获得类似的输出?

我能来的最近的是model.decision_function(),它根据与超平面的签名距离输出示例的置信度分数,但我不知道如何转换这些对我想要的概率数字的置信度得分。

model.predict()也只返回二进制值。

1 个答案:

答案 0 :(得分:1)

我认为你想要的是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生成分类问题的概率