Calculer sklearn.roc_auc_score pour le multi-classe

Je voudrais calculer l'ASC, de la précision, de l'exactitude de mon classificateur.
Je suis en train de faire l'apprentissage supervisé:

Voici mon code de travail.
Ce code fonctionne très bien pour les binaires de la classe, mais pas pour le multi de classe.
Veuillez supposons que vous disposez d'un dataframe binaire classes:

sample_features_dataframe = self._get_sample_features_dataframe()
labeled_sample_features_dataframe = retrieve_labeled_sample_dataframe(sample_features_dataframe)
labeled_sample_features_dataframe, binary_class_series, multi_class_series = self._prepare_dataframe_for_learning(labeled_sample_features_dataframe)

k = 10
k_folds = StratifiedKFold(binary_class_series, k)
for train_indexes, test_indexes in k_folds:
    train_set_dataframe = labeled_sample_features_dataframe.loc[train_indexes.tolist()]
    test_set_dataframe = labeled_sample_features_dataframe.loc[test_indexes.tolist()]

    train_class = binary_class_series[train_indexes]
    test_class = binary_class_series[test_indexes]
    selected_classifier = RandomForestClassifier(n_estimators=100)
    selected_classifier.fit(train_set_dataframe, train_class)
    predictions = selected_classifier.predict(test_set_dataframe)
    predictions_proba = selected_classifier.predict_proba(test_set_dataframe)

    roc += roc_auc_score(test_class, predictions_proba[:,1])
    accuracy += accuracy_score(test_class, predictions)
    recall += recall_score(test_class, predictions)
    precision += precision_score(test_class, predictions)

À la fin, j'ai divisé les résultats en K de cours pour l'obtention de la moyenne de l'ASC, de la précision, etc.
Ce code fonctionne bien.
Cependant, je ne peut pas calculer de même pour le multi classe:

    train_class = multi_class_series[train_indexes]
    test_class = multi_class_series[test_indexes]

    selected_classifier = RandomForestClassifier(n_estimators=100)
    selected_classifier.fit(train_set_dataframe, train_class)

    predictions = selected_classifier.predict(test_set_dataframe)
    predictions_proba = selected_classifier.predict_proba(test_set_dataframe)

J'ai trouvé que pour le multi de classe I d'ajouter le paramètre "pondérée" pour la moyenne.

    roc += roc_auc_score(test_class, predictions_proba[:,1], average="weighted")

J'ai une erreur: raise ValueError("{0} format n'est pas pris en charge".format(y_type))

ValueError: multiclass format n'est pas pris en charge

OriginalL'auteur Aviade | 2016-09-25