sklearn LinearSVC - X a 1 caractéristiques par exemple; attend 5
Je suis en train d'essayer de prédire la classe d'un test de tableau, mais j'obtiens l'erreur ci-dessous, avec la trace de la pile:
Traceback (most recent call last):
File "/home/radu/PycharmProjects/Recommender/Temporary/classify_dict_test.py", line 24, in <module>
print classifier.predict(test)
File "/home/radu/.local/lib/python2.7/site-packages/sklearn/linear_model/base.py", line 215, in predict
scores = self.decision_function(X)
File "/home/radu/.local/lib/python2.7/site-packages/sklearn/linear_model/base.py", line 196, in decision_function
% (X.shape[1], n_features))
ValueError: X has 1 features per sample; expecting 5
Le code qui est la génération de ce qui est:
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.svm import LinearSVC
corpus = [
"I am super good with Java and JEE",
"I am super good with .NET and C#",
"I am really good with Python and R",
"I am really good with C++ and pointers"
]
classes = ["java developer", ".net developer", "data scientist", "C++ developer"]
test = ["I think I'm a good developer with really good understanding of .NET"]
tvect = TfidfVectorizer(min_df=1, max_df=1)
X = tvect.fit_transform(corpus)
classifier = LinearSVC()
classifier.fit(X, classes)
print classifier.predict(test)
J'ai essayé de regarder dans le LinearSVC documentation pour des directives ou des conseils quant à ce qui pourrait se débarrasser de cette erreur, mais je ne peux pas le comprendre.
Toute aide est grandement appréciée!
OriginalL'auteur Radu Gheorghiu | 2015-08-19
Vous devez vous connecter pour publier un commentaire.
Le test de variable est une chaîne de caractères - le SVC a besoin d'une fonctionnalité de vecteur avec le même nombre de dimensions que X. Vous devez transformer la chaîne de test à une fonction du vecteur à l'aide de la même vectorizer exemple, avant de le nourrir pour le SVC:
OriginalL'auteur Alexander Bauer