Мультиклассовые метрики классификации Scikit, отчет о классификации

Я использую scikit learn 0.15.2 для задачи классификации нескольких классов. Я получал много предупреждений об устаревании, следующих из следующих примеров: scikit 0.14 multi label metrics, пока я не начал использовать MultiLabelBinarizer:

«DeprecationWarning: прямая поддержка представления последовательности последовательностей с несколькими ярлыками будет недоступна с версии 0.17. Используйте sklearn.preprocessing.MultiLabelBinarizer для преобразования в представление индикатора ярлыка».

Однако я не могу найти способ получить отчет о классификации (с точностью, отзывом, f-мерой) для работы с ним, поскольку это было ранее возможно, как показано здесь: scikit 0.14 multi-label metrics

Я попытался использовать inverse_transform, как показано ниже, это дает классификационный отчет, но также снова дает предупреждения о том, что с 0.17 этот код сломается.

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

Пример кода:

import numpy as np
from sklearn.multiclass import OneVsRestClassifier
from sklearn.preprocessing import MultiLabelBinarizer
from sklearn.svm import LinearSVC
from sklearn.metrics import classification_report

# Some simple data:

X_train = np.array([[0,0,0], [0,0,1], [0,1,0], [1,0,0], [1,1,1]])
y_train = [[1], [1], [1,2], [2], [2]]

# Use MultiLabelBinarizer and train a multi-class classifier:

mlb = MultiLabelBinarizer(sparse_output=True)
y_train_mlb = mlb.fit_transform(y_train)

clf = OneVsRestClassifier(LinearSVC())
clf.fit(X_train, y_train_mlb)

# classification_report, here I did not find a way to use y_train_mlb, 
# I am getting a lot of DeprecationWarnings

predictions_test = mlb.inverse_transform(clf.predict(X_train))
print classification_report(y_train, predictions_test)

# Predict new example:

print mlb.inverse_transform(clf.predict(np.array([0,1,0])))

person tkja    schedule 14.05.2015    source источник


Ответы (1)


Похоже, вам нужно запустить свой классификационный отчет с бинаризованными метками:

print classification_report(y_train_mlb, clf.predict(X_train))
person elachell    schedule 12.06.2015