Показатель оценки c для перекрестной проверки нескольких классов - PullRequest
2 голосов
/ 04 августа 2020

У меня есть DataFrame X, в котором есть столбец с именем target с 10 разными метками: [0,1,2,3,4,5,6,7,8,9]. У меня есть машинное обучение model, скажем: model=AdaBoostClassifier() Я хотел бы использовать, чтобы подогнать данные и снова спрогнозировать метки, выполнив процесс перекрестной проверки для обучения модели. Я использую два показателя для перекрестной проверки, accuracy и neg_mean_squared_error, чтобы оценить производительность и вычислить соотношение: neg_mean_squared_error/accuracy. Строки выглядят примерно так:

model.seed = 42

outer_cv = StratifiedKFold(n_splits=10, shuffle=True, random_state=1)

scoring=('accuracy', 'neg_mean_squared_error')

scores = cross_validate(model, X.drop(target,axis=1), X[target], cv=outer_cv, n_jobs=-1, scoring=scoring)

scores = abs(np.sqrt(np.mean(scores['test_neg_mean_squared_error'])*-1))/np.mean(scores['test_accuracy'])

score_description = [model,'{model}'.format(model=model.__class__.__name__),"%0.5f" % scores]

Однако всякий раз, когда я начинаю бежать, я получаю следующее сообщение об ошибке: ValueError: Samplewise metrics are not available outside of multilabel classification.

Как мне решить эту проблему с помощью метрик и провести соответствующую классификацию? Какие метрики я могу использовать для оценки производительности модели в случае с несколькими этикетками?

...