Я пытаюсь использовать аргумент log_loss
в параметре scoring
GridSearchCV
, чтобы настроить этот мультиклассовый (6 классов) классификатор. Я не понимаю, как задать параметр label
. Даже если бы я дал ему sklearn.metrics.log_loss
, он бы изменился для каждой итерации перекрестной проверки, поэтому я не понимаю, как дать ему параметр labels
?
Я использую Python v3.6
и Scikit-Learn v0.18.1
Как можно использовать GridSearchCV
с log_loss
с настройкой мультиклассовой модели?
Мое представление класса:
1 31
2 18
3 28
4 19
5 17
6 22
Name: encoding, dtype: int64
Мой код:
param_test = {"criterion": ["friedman_mse", "mse", "mae"]}
gsearch_gbc = GridSearchCV(estimator = GradientBoostingClassifier(n_estimators=10),
param_grid = param_test, scoring="log_loss", n_jobs=1, iid=False, cv=cv_indices)
gsearch_gbc.fit(df_attr, Se_targets)
Вот конец ошибки, а полная - здесь https://pastebin.com/1CshpEBN:
ValueError: y_true contains only one label (1). Please provide the true labels explicitly through the labels argument.
ОБНОВЛЕНИЕ: просто используйте это, чтобы сделать счетчика на основе @Grr
log_loss_build = lambda y: metrics.make_scorer(metrics.log_loss, greater_is_better=False, needs_proba=True, labels=sorted(np.unique(y)))
Se_targets
. А также взгляните на scikit-learn.org/stable/ модули / - person Vivek Kumar   schedule 13.04.2017