我有一个基于LinearSVC的模型,并且具有可变数量的类。对于类== 2且类>的情况,决策函数具有不同的输出。 2:
decision_function(X)
...
返回:数组,shape =(n_samples,)如果n_classes == 2 else(n_samples,n_classes):
每个(样本,类别)组合的置信度分数。在二进制的情况下,self.classes_ [1]的置信度得分,其中> 0表示将预测此类。
我想在类== 2的情况下将输出转换为与其他情况相同的格式。但我可以直接在0处镜像条目吗?
probabilities = model.decision_function(X)
if len(probabilities[0]) == 1:
probabilities = [(-p, p) for p in probabilities]
根据我对SVM的理解,这应该是正确的。但是sklearn对此没有任何其他说法。
答案 0 :(得分:1)
否定概率没有意义,你想要的可能是1 - p
。此外,您需要创建ndarray
,而不是对的列表:
prob2 = np.zeros((len(probabilities), 2))
prob2[:,0] = 1 - probabilities
prob2[:,1] = probabilities