Документация по адресу SVMs подразумевает, что существует атрибут «классы_», который, как мы надеемся, показывает, как модель представляет классы внутри.Идентификация классов модели sklearn
Я хотел бы получить эту информацию, чтобы интерпретировать выходные данные таких функций, как «pred_proba», которая генерирует вероятности классов для нескольких выборок. Будем надеяться, зная, что (значения выбираются совершенно случайно, просто для иллюстрации)
model.classes_
>> [1, 2, 4]
средства, которые можно предположить, что
model.predict_proba([[1.2312, 0.23512, 6.], [3.7655, 8.2353, 0.86323]])
>> [[0.032, 0.143, 0.825], [0.325, 0.143, 0.532]]
средства, что вероятности перевести на том же порядке, как классы, т.е. для первого набора функций:
probability of class 1: 0.032
probability of class 2: 0.143
probability of class 4: 0.825
Но вызов класса «class_» на SVM приводит к ошибке. Есть ли хороший способ получить эту информацию? Я не могу себе представить, что он больше не доступен после обучения модели.
редактировать: Как я построить моя модель более или менее, как это:
from sklearn.svm import SVC
from sklearn.grid_search import GridSearchCV
from sklearn.pipeline import Pipeline, FeatureUnion
pipeline = Pipeline([
('features', FeatureUnion(transformer_list[ ... ])),
('svm', SVC(probability=True))
])
parameters = { ... }
grid_search = GridSearchCV(
pipeline,
parameters
)
grid_search.fit(get_data(), get_labels())
clf = [elem for elem in grid_search.estimator.steps if elem[0] == 'svm'][0][1]
print(clf)
>> SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,
kernel='rbf', max_iter=-1, probability=True, random_state=None,
shrinking=True, tol=0.001, verbose=False)
print(clf.classes_)
>> Traceback (most recent call last):
File "path/to/script.py", line 284, in <module>
File "path/to/script.py", line 181, in re_train
print(clf.classes_)
AttributeError: 'SVC' object has no attribute 'classes_'
Спасибо, он работает сейчас =) – Arne