【发布时间】:2021-04-02 15:19:07
【问题描述】:
我使用 sklearn.svm.SVC 构建支持向量分类器,如下所示。
import numpy as np
from sklearn.svm import SVC
svc=SVC(probability=True)
X = np.random.randint(0, 100, [100, 3])
y = np.random.choice([0, 1, 2], 100, replace=True)
svc.fit(X, y)
print(svc.predict([[10, 20, 30]]), svc.predict_proba([[10, 20, 30]]))
输出是
[2] [[0.38993057 0.3791583 0.23091113]]
svc.predict_proba() 的结果表明该实例应该属于class0 的概率最高。但是 svc.predict() 改为使用 class2。我想知道为什么这两个结果不一致。
【问题讨论】:
-
来自
predict_proba()的文档:概率模型是使用交叉验证创建的,因此结果可能与通过预测获得的结果略有不同。此外,它会在非常小的数据集上产生毫无意义的结果。
标签: python scikit-learn svm