sklearn:评估 LinearSVC AUC

Posted

技术标签:

【中文标题】sklearn:评估 LinearSVC AUC【英文标题】:sklearn: Evaluating LinearSVC's AUC 【发布时间】:2015-08-02 10:07:27 【问题描述】:

我知道可以通过将probability=True 选项传入构造函数并让 SVM 预测概率来评估 sklearn.svm.SVC 的 AUC,但我不确定如何评估 sklearn.svm.LinearSVC 的 AUC。有人知道怎么做吗?

我想使用LinearSVC 而不是SVC,因为LinearSVC 似乎在具有许多属性的数据上训练得更快。

【问题讨论】:

【参考方案1】:

您可以使用 CalibratedClassifierCV 类来提取概率。这是example with code。

from sklearn.svm import LinearSVC
from sklearn.calibration import CalibratedClassifierCV
from sklearn import datasets

#Load iris dataset
iris = datasets.load_iris()
X = iris.data[:, :2] # Using only two features
y = iris.target      #3 classes: 0, 1, 2

linear_svc = LinearSVC()     #The base estimator

# This is the calibrated classifier which can give probabilistic classifier
calibrated_svc = CalibratedClassifierCV(linear_svc,
                                        method='sigmoid',  #sigmoid will use Platt's scaling. Refer to documentation for other methods.
                                        cv=3) 
calibrated_svc.fit(X, y)


# predict
prediction_data = [[2.3, 5],
                   [4, 7]]
predicted_probs = calibrated_svc.predict_proba(prediction_data)  #important to use predict_proba
print predicted_probs

【讨论】:

【参考方案2】:

看来这是不可能的。 https://github.com/scikit-learn/scikit-learn/issues/4820

【讨论】:

以上是关于sklearn:评估 LinearSVC AUC的主要内容,如果未能解决你的问题,请参考以下文章

sklearn:LinearSVC 和 OneSVM 的 AUC 分数

Sklearn LinearSVC库中惩罚和损失参数的区别

哪个稀疏矩阵表示与 sklearn.svm.LinearSVC 一起使用

如何将 TfidfVectorizer 的输出馈送到 Sklearn 中的 LinearSVC 分类器?

sklearn.svm包中的SVC(kernel=”linear“)和LinearSVC的区别

LinearSVC sklearn (scikit-learn) 中 C 的行为