< P> Im Moment antwortet der Wald in etwa 0,5% der Fälle korrekt. Die Verwendung der gleichen Eingaben mit einem SGD -Klassifikator ergibt fast 80%, was mir darauf hindeutet, dass die Vorverarbeitung und die vektorisierende, die ich mache, in Ordnung ist - es ist etwas Spezifisches für den RF -Klassifikator. Meine erste Reaktion bestand darin, nach Überanpassung zu suchen, aber selbst wenn ich das Modell auf den Trainingsdaten ausführe, geht es immer noch fast alles falsch. < /P>
Ich habe mit der Anzahl der Bäume und der Anzahl der Trainingsdaten herumgespielt, aber das schien sich nicht viel für mich zu ändern. Ich versuche nur den relevanten Code zu zeigen, kann aber mehr posten, wenn das hilfreich ist. Erstens also posten Sie alle Gedanken und Feedback. < /P>
Code: Select all
#pull in package to create word occurence vectors for each line
from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer(min_df=1,charset_error='ignore')
X_train = vectorizer.fit_transform(train_file)
#convert to dense array, the required input type for random forest classifier
X_train = X_train.todense()
#pull in random forest classifier and train on data
from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier(n_estimators = 100, compute_importances=True)
clf = clf.fit(X_train, train_targets)
#transform the test data into the vector format
testdata = vectorizer.transform(test_file)
testdata = testdata.todense()
#export
with open('output.csv', 'wb') as csvfile:
spamwriter = csv.writer(csvfile)
for item in clf.predict(testdata):
spamwriter.writerow([item])