【发布时间】:2014-04-27 14:23:36
【问题描述】:
我目前正在使用 sklearn 的 Ridge 分类器,并希望将此分类器与 sklearn 和其他库中的分类器集成。为了做到这一点,理想的做法是提取给定输入属于类列表中每个类的概率。目前,我正在使用 model.decision_function(x) 的输出压缩类,但这会返回与超平面的距离,而不是直接的概率。 这些距离值从大约 -1 到大约 1 不等。
distances = dict(zip(clf.classes_, clf.decision_function(x)[0]))
如何将这些距离转换为一组更具体的概率(一系列总和为 1 的正值)?我正在寻找类似 @987654322@ 的东西,它是为 sklearn 中的 SVC 实现的。
【问题讨论】:
-
RidgeClassifier上没有predict_proba,因为它不容易被解释为概率模型,AFAIK。逻辑变换或仅在 [-1, 1] 处设置阈值并将其映射到 [0, 1] 是可能的,但两者都是 hack。 -
是的,我能做的最好的就是采用决策函数的 softmax,但至少 a) 保持相对顺序 b) 使集成更简单。
标签: python machine-learning classification scikit-learn