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
我有一个基于 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