Was mache ich falsch mit scikit-learn
von nltk
, um die Genauigkeit des naiven Bayes Classifier zu überprüfen?Bewertung der Vorhersagegenauigkeit des NB-Modells
...readFile definition not needed
#divide the data into training and testing sets
data = readFile('Data_test/')
training_set = list_nltk[:2000000]
testing_set = list_nltk[2000000:]
#applied Bag of words as a way to select and extract feature
count_vect = CountVectorizer()
X_train_counts = count_vect.fit_transform(training_set.split('\n'))
#apply tfd
tf_transformer = TfidfTransformer(use_idf=False).fit(X_train_counts)
X_train_tf = tf_transformer.transform(X_train_counts)
#Train the data
clf = MultinomialNB().fit(X_train_tf, training_set.split('\n'))
#now test the accuracy of the naive bayes classifier
test_data_features = count_vect.transform(testing_set)
X_new_tfidf = tf_transformer.transform(test_data_features)
predicted = clf.predict(X_new_tfidf)
print "%.3f" % nltk.classify.accuracy(clf, predicted)
Das Problem ist, wenn ich die nltk.classify.accuracy drucken, es dauert ewig, und ich bin zu ahnen, ist dies, weil ich etwas falsch gemacht habe, aber da ich keinen Fehler, ich kann, was es nicht herausfinden, ist das falsch.
Sind Sie sicher, dass es die Genauigkeitsmethode aufruft? Was versuchst du vorherzusagen? Versuchen Sie, etwas Druck hinzuzufügen, um zu sehen, wo es aufhört. Die Fit-Methode deines Klassifikators scheint merkwürdig zu sein, sie sollte 'clf.fit (X, Y)' sein, mit X der (vektorisierte) Text und Y die Label deines Trainingssatzes. – dooms