Python : Comment trouver de l'Exactitude de la Suite dans SVM Texte Classificateur Algorithme pour Multilabel Classe
J'ai utilisé à la suite d'un ensemble de code:
Et j'ai besoin de vérifier l'exactitude de X_train et X_test
Le code suivant fonctionne pour moi dans mon problème de classement multi-étiquetés classe
import numpy as np
from sklearn.pipeline import Pipeline
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.svm import LinearSVC
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.multiclass import OneVsRestClassifier
X_train = np.array(["new york is a hell of a town",
"new york was originally dutch",
"the big apple is great",
"new york is also called the big apple",
"nyc is nice",
"people abbreviate new york city as nyc",
"the capital of great britain is london",
"london is in the uk",
"london is in england",
"london is in great britain",
"it rains a lot in london",
"london hosts the british museum",
"new york is great and so is london",
"i like london better than new york"])
y_train = [[0],[0],[0],[0]
,[0],[0],[1],[1]
,[1],[1],[1],[1]
,[2],[2]]
X_test = np.array(['nice day in nyc',
'the capital of great britain is london',
'i like london better than new york',
])
target_names = ['Class 1', 'Class 2','Class 3']
classifier = Pipeline([
('vectorizer', CountVectorizer(min_df=1,max_df=2)),
('tfidf', TfidfTransformer()),
('clf', OneVsRestClassifier(LinearSVC()))])
classifier.fit(X_train, y_train)
predicted = classifier.predict(X_test)
for item, labels in zip(X_test, predicted):
print '%s => %s' % (item, ', '.join(target_names[x] for x in labels))
SORTIE
nice day in nyc => Class 1
the capital of great britain is london => Class 2
i like london better than new york => Class 3
Je tiens à vérifier l'adéquation entre la Formation et de l'ensemble de données de Test.
Fonction de partition ne fonctionne pas pour moi, il affiche un message d'erreur indiquant que multilabel valeur ne peut pas acceptés
>>> classifier.score(X_train, X_test)
NotImplementedError: score n'est pas pris en charge pour multilabel classificateurs
De bien vouloir m'aider à obtenir des résultats de précision pour la formation et les données d'essais et de choisir un algorithme pour notre classification des cas.
OriginalL'auteur user_az | 2013-10-28
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez obtenir une précision de pointage pour votre jeu de test, vous devez créer une clé de réponse, que vous pouvez appeler
y_test
. Vous ne pouvez pas savoir si vos prédictions sont correctes, sauf si vous savez les réponses correctes.Une fois que vous avez une clé de réponse, vous pouvez obtenir la précision. La méthode que vous voulez, c'est sklearn.métriques.accuracy_score.
Je l'ai écrit ci-dessous:
Aussi, sklearn a plusieurs autres mesures en plus de précision. Voir ici: sklearn.métriques
Je trouve
classification_report
(à partir de sklearn) très utile, car il contient une table avec la plus fréquente des mesures.OriginalL'auteur mayhewsw