Python : Multilabel 클래스의 SVM 텍스트 분류기 알고리즘에서 정확도 결과를 찾는 법


Answers

Question

다음 코드 집합을 사용했습니다 : 그리고 X_train 및 X_test의 정확성을 검사해야합니다.

다음 코드는 다중 분류 클래스보다 내 분류 문제에서 유용합니다.

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

산출

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

Training과 Test Dataset 사이의 정확성을 확인하고 싶습니다. 점수 기능이 작동하지 않으면 멀티 라벨 값을 수락 할 수 없다는 오류가 표시됩니다.

>>> classifier.score(X_train, X_test)

NotImplementedError : 멀티 라벨 분류 기준에 점수가 지원되지 않습니다.

교육 및 테스트 데이터의 정확도 결과를 얻고 분류 사례의 알고리즘을 선택하도록 도와주십시오.




Links