sklearn: оценка AUC от LinearSVC

Я знаю, что можно было бы оценить AUC sklearn.svm.SVC передавая в probability=True вариант в конструктор, и с SVM предсказывают вероятности, но я не уверен, как оценить sklearn.svm.LinearSVCАУК. У кого-нибудь есть идеи как?

Я хотел бы использовать LinearSVC над SVC так как LinearSVC Кажется, тренироваться быстрее на данных со многими атрибутами.

2 ответа

Вы можете использовать класс CalibratedClassifierCV для извлечения вероятностей. Вот пример с кодом.

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

Похоже, это невозможно. https://github.com/scikit-learn/scikit-learn/issues/4820

Другие вопросы по тегам