sci-kit d'apprendre: Remodeler vos données à l'aide de X. remodeler(-1, 1)
Je suis la formation d'un python (2.7.11) classificateur pour la classification de textes et lors de l'exécution j'obtiens obsolète message d'avertissement que je ne sais pas qui ligne dans mon code qui en est la cause! L'erreur/d'avertissement. Toutefois, le code fonctionne très bien et me donner les résultats...
\AppData\Local\Enthought\Verrière\Utilisateur\lib\site-packages\sklearn\utils\validation.py:386: DeprecationWarning: Passage de tableaux 1d données est obsolète dans 0,17 et willraise ValueError dans de 0,19. Remodeler vos données à l'aide de X. remodeler(-1, 1) si vos données ont une fonction unique ou X. remodeler(1, -1) si elle ne contient qu'un seul échantillon.
Mon code:
def main():
data = []
folds = 10
ex = [ [] for x in range(0,10)]
results = []
for i,f in enumerate(sys.argv[1:]):
data.append(csv.DictReader(open(f,'r'),delimiter='\t'))
for f in data:
for i,datum in enumerate(f):
ex[i % folds].append(datum)
#print ex
for held_out in range(0,folds):
l = []
cor = []
l_test = []
cor_test = []
vec = []
vec_test = []
for i,fold in enumerate(ex):
for line in fold:
if i == held_out:
l_test.append(line['label'].rstrip("\n"))
cor_test.append(line['text'].rstrip("\n"))
else:
l.append(line['label'].rstrip("\n"))
cor.append(line['text'].rstrip("\n"))
vectorizer = CountVectorizer(ngram_range=(1,1),min_df=1)
X = vectorizer.fit_transform(cor)
for c in cor:
tmp = vectorizer.transform([c]).toarray()
vec.append(tmp[0])
for c in cor_test:
tmp = vectorizer.transform([c]).toarray()
vec_test.append(tmp[0])
clf = MultinomialNB()
clf .fit(vec,l)
result = accuracy(l_test,vec_test,clf)
print result
if __name__ == "__main__":
main()
Aucune idée de qui ligne soulève cet avertissement?
Un autre problème est que l'exécution de ce code avec différents ensembles de données me donne exactement la même exactitude, et je ne peux pas comprendre ce cas?
Si je veux utiliser ce modèle dans un autre python processus, j'ai regardé la documentation et j'ai trouvé un exemple d'utilisation de cornichons à la bibliothèque, mais pas pour joblib. Donc, j'ai essayé de suivre le même code, mais cela m'a donné des erreurs:
clf = joblib.load('model.pkl')
pred = clf.predict(vec);
Aussi, si mes données est un fichier CSV avec ce format: "label" \t "texte \n"
ce qui devrait être dans étiquette de colonne dans les données de test?
Merci d'avance
OriginalL'auteur sareem | 2016-02-03
Vous devez vous connecter pour publier un commentaire.
Votre 'vec' entrée dans votre fcf.ajustement(vec,l) .l'ajustement doit être de type [[]], non seulement []. C'est un caprice que je l'oublie toujours quand je l'ajustement des modèles.
Simplement l'ajout d'un ensemble supplémentaire de crochets devrait faire l'affaire!
OriginalL'auteur Heavy Breathing
C'est:
Je l'utilise dans mon code et cela a fonctionné:
OriginalL'auteur Ramin Fallahzadeh
Si vous voulez savoir d'où l'
Warning
est à venir, vous pouvez temporairement promouvoirWarnings
àExceptions
. Cela vous donnera une complète traçabilité en amont et donc les lignes de votre programme a rencontré l'avertissement.Si vous exécutez le programme à partir de la ligne de commande, vous pouvez également utiliser le
-W
drapeau. Plus d'informations sur l'Avertissement-la manipulation peut être trouvé dans la la documentation python.Je sais que c'est seulement une partie de votre question, j'ai répondu, mais avez-vous déboguer votre code?
Si vous voulez dire ce qui est sur la console, puis j'obtiens ce que j'ai collé ci-dessus. il n'y a rien de plus. Si tu veux tracer le code, alors je n'ai pas essayé, mais oui, il semble que je peux importer l'apb de la bibliothèque, mais son utilisation n'aide pas beaucoup (peut-être parce que je suis un débutant)...
OriginalL'auteur MSeifert
2 solution: la philosophie___faire de vos données à partir 1D 2D
Juste ajouter:
[]
Remodeler vos données
OriginalL'auteur Atongsa Miyamoto
Depuis 1D tableau serait obsolète. Essayer de passer en 2D tableau comme paramètre. Cela peut vous aider.
OriginalL'auteur Dark