【问题标题】:sklearn: Evaluating LinearSVC's AUCsklearn:评估 LinearSVC AUC
【发布时间】:2015-08-02 10:07:27
【问题描述】:
我知道可以通过将probability=True 选项传入构造函数并让 SVM 预测概率来评估 sklearn.svm.SVC 的 AUC,但我不确定如何评估 sklearn.svm.LinearSVC 的 AUC。有人知道怎么做吗?
我想使用LinearSVC 而不是SVC,因为LinearSVC 似乎在具有许多属性的数据上训练得更快。
【问题讨论】:
标签:
scikit-learn
svm
libsvm
liblinear
【解决方案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