2015-07-07 1 views
1

Я пытался использовать GridSearchCV для мульти-класса случае на основе ответа от здесь:Не поддерживает GridSearchCV мульти-класс?

Accelerating the prediction

Но я получил ошибку значения, multiclass format is not supported.

Как я могу использовать этот метод для мульти-класса случае ?

Следующий код из ответа приведенной выше ссылки.

import numpy as np 
from sklearn.datasets import make_classification 
from sklearn.preprocessing import StandardScaler 
from sklearn.svm import SVC 
from sklearn.pipeline import make_pipeline 
from sklearn.grid_search import GridSearchCV 
from sklearn.metrics import accuracy_score, recall_score, f1_score, roc_auc_score, make_scorer 

X, y = make_classification(n_samples=3000, n_features=5, weights=[0.1, 0.9, 0.3]) 

pipe = make_pipeline(StandardScaler(), SVC(kernel='rbf', class_weight='auto')) 

param_space = dict(svc__C=np.logspace(-5,0,5), svc__gamma=np.logspace(-2, 2, 10)) 

accuracy_score, recall_score, roc_auc_score 
my_scorer = make_scorer(roc_auc_score, greater_is_better=True) 

gscv = GridSearchCV(pipe, param_space, scoring=my_scorer) 
gscv.fit(X, y) 

print gscv.best_params_ 
+0

Обязательно отправьте свой код. Мы не можем помочь, если не знаем, что вы делаете. – Andreus

+0

@ Андреус отредактирован. – Borys

ответ

2

Из документации на roc_auc_score:

Примечание: эта реализация ограничивается бинарной задачи классификации или MultiLabel задачи классификации в формате индикатора этикетки.

По значению «формат индикатора этикетки» означает, что каждое значение метки представлено как двоичный столбец (а не как уникальное целевое значение в одном столбце). Вы не хотите делать это для своего предиктора, так как это может привести к не взаимоисключающим предсказаниям (т. Е. Предсказывать как метки 2 и 4 для случая p1, так и не прогнозировать отсутствие меток для случая p2).

Выбирайте или настраивайте функцию подсчета очков, которая четко определена для проблемы многоклассов, например F1 score. Лично я нахожу informedness более убедительным, чем оценка F1, и проще обобщить на проблему многоклассов, чем roc_auc_score.

+0

Спасибо за ваш ответ, + 1, и принято. Значит, информированность в scikit-learn отсутствует? – Borys

+0

Не версия 0.15, которую я использую. Я не думаю, что это тоже в 0.16. – Andreus

+0

Какое программное обеспечение или программа вы используете для этого? – Borys

Смежные вопросы