Je suis novice en matière d'apprentissage automatique en général.
J'essaie de faire une classification de texte multi-label. J'ai les étiquettes originales de ces documents ainsi que le résultat de la classification (j'ai utilisé le classificateur mlknn) représenté sous la forme d'un encodage chaud (19000 documents x 200 étiquettes). J'essaie maintenant d'évaluer la classification avec f1_score micro et macro mais j'obtiens cette erreur (à la ligne 3) ValueError: Classification metrics can't handle a mix of multiclass-multioutput and multilabel-indicator targets
et je ne sais pas comment je peux le résoudre. Voici mon code :
1. y_true = np.loadtxt("target_matrix.txt")
2. y_pred = np.loadtxt("classification_results.txt")
3. print (f1_score(y_true, y_pred, average='macro'))
4. print (f1_score(y_true, y_pred, average='micro'))
J'ai également essayé d'utiliser cross_val_score
pour la classification afin d'obtenir l'évaluation immédiatement mais a rencontré une autre erreur (provenant de cross_val_score
ligne) :
File "_csparsetools.pyx", line 20, in scipy.sparse._csparsetools.lil_get1
File "_csparsetools.pyx", line 48, in scipy.sparse._csparsetools.lil_get1
IndexError: column index (11) out of bounds
Voici mon code :
X = np.loadtxt("docvecs.txt", delimiter=",")
y = np.loadtxt("target_matrix.txt", dtype='int')
cv_scores = []
mlknn = MLkNN(k=10)
scores = cross_val_score(mlknn, X, y, cv=5, scoring='f1_micro')
cv_scores.append(scores)
Toute aide concernant l'une ou l'autre de ces erreurs sera très appréciée, merci.