sklearn decision_function 有 2 个或更多 类

sklearn decision_function with 2 or more classes

我有一个基于 LinearSVC 的模型,并且有一个可变数量的 类。对于 类 == 2 和 类 > 2:

的情况,决策函数具有不同的输出

decision_function(X)

...

Returns: array, shape=(n_samples,) if n_classes == 2 else (n_samples, n_classes) :

Confidence scores per (sample, class) combination. In the binary case, confidence score for self.classes_[1] where >0 means this class would be predicted.

我想将 类 == 2 情况下的输出转换为与其他情况相同的格式。但是我可以继续并在 0 处镜像条目吗?

probabilities = model.decision_function(X)
    if len(probabilities[0]) == 1:
        probabilities = [(-p, p) for p in probabilities]

根据我对 SVM 的理解,这应该是正确的。但是 sklearn 没有说任何其他关于它的东西。

负概率没有意义,你要的大概是1 - p。此外,您需要创建一个 ndarray,而不是一个对列表:

prob2 = np.zeros((len(probabilities), 2))
prob2[:,0] = 1 - probabilities
prob2[:,1] = probabilities