Dienstag, Dezember 10, 2019

Python : Wie finde ich die Genauigkeit Ergebnis in der SVM-Text Classifier-Algorithmus für Multilabel-Klasse

Benutzt habe ich folgenden code:
Und ich brauche, um zu überprüfen, die Genauigkeit der X_train und X_test

Der folgende code funktioniert für mich in meinem classification problem in multi-Label-Klasse

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))

AUSGABE

nice day in nyc => Class 1
the capital of great britain is london => Class 2
i like london better than new york => Class 3

Möchte ich überprüfen die Genauigkeit zwischen Trainings-und Test-Datensatz.
Score-Funktion bei mir nicht funktioniert, es zeigt eine Fehlermeldung, die besagt, dass multilabel-Wert kann nicht akzeptiert

>>> classifier.score(X_train, X_test)

NotImplementedError: score wird nicht unterstützt für multilabel-Klassifikatoren

Freundlicherweise mir helfen, die Genauigkeit der Ergebnisse für Schulungs-und test-Daten, und wählen Sie einen Algorithmus für unsere Klassifizierung Fall.

InformationsquelleAutor user_az | 2013-10-28

1 Kommentar

  1. 11

    Wenn Sie möchten, um eine Genauigkeit Punktzahl für den test festlegen, müssen Sie erstellen Sie eine Antwort-Taste, die Sie anrufen können y_test. Sie können nicht wissen, ob Ihre Vorhersagen korrekt sind, es sei denn, Sie kennen die richtigen Antworten.

    Einmal haben Sie eine Antwort-Taste, können Sie die Genauigkeit. Die Methode, die Sie wollen, ist sklearn.Metriken.accuracy_score.

    Ich habe es geschrieben, wie die folgenden:

    from sklearn.metrics import accuracy_score
    
    # ... everything else the same ...
    
    # create an answer key
    # I hope this is correct!
    y_test = [[1], [2], [3]]
    
    # same as yours...
    classifier.fit(X_train, y_train)
    predicted = classifier.predict(X_test)
    
    # get the accuracy
    print accuracy_score(y_test, predicted)

    Auch, sklearn hat mehrere andere Metriken neben der Genauigkeit. Sehen Sie hier: sklearn.Metriken

    • Vielen Dank, es funktioniert für mein problem
    • Ich finde classification_report (aus sklearn) sehr nützlich, da es enthält eine Tabelle mit den häufigsten Messgrößen.

Kostenlose Online-Tests

Letzte Fragen

Tun ItemView löst Blase?

Ich habe eine CompositeView für eine Tabelle. Ich habe Trigger-set in der Kind-ItemView für jede Zeile... var TableRow = Marionette.ItemView.extend({ tagName:...

Wie kann ich untersuchen, WCF was 400 bad request über GET?

Die folgenden WCF-endpoint funktioniert gut mit dem WCF test client: AssetList ListFlaggedAssets(short processCode, string platform, string endpoint = "null", string portalId = "null", int...

Bei der Verwendung von UUIDs, sollte ich auch mit AUTO_INCREMENT?

Wir bauen eine neue web-app, die eine offline-iPad - /Android-app-version auf einer Reihe von lokalen Geräten, die Einsätze mit neuen Daten. Als solche benötigen...

Actionscript-Objekt, das verschiedene Eigenschaften

Wie kann ich die Anzahl der Eigenschaften in einer generischen Actionscript-Objekt? (Wie die Array-Länge) InformationsquelleAutor Fragsworth | 2011-01-15

Wie plot mehrere Graphen und nutzen Sie die Navigations-Taste im [matplotlib]

Die neueste version von matplotlib erstellt automatisch Navigations-buttons unter den graph. Aber die Beispiele, die ich finden alles im Internet zeigen, wie erstellen Sie...