Fehlerbehebung zufälliger Wälder Klassifizierer im Scikit lernenPython

Python-Programme
Guest
 Fehlerbehebung zufälliger Wälder Klassifizierer im Scikit lernen

Post by Guest »

Ich versuche, den zufälligen Waldklassifizierer aus dem Sci -Kit -Lernen zu betreiben und misstrauisch schlechte Ausgabe zu erhalten - weniger als 1% der Vorhersagen sind korrekt. Das Modell leistet viel schlechter als Zufall. Ich bin relativ neu in Python, ML und Sci-Kit Learn (ein dreifacher Whammy), und meine Sorge ist, dass mir etwas Grundlegendes fehlt, anstatt die Parameter zu optimieren. Ich hoffe, dass mehr erfahrene Augen durch den Code schauen und sehen können, ob etwas mit dem Setup nicht stimmt. Eine Tabelle basierend auf Wortvorkommen - daher ist die Eingabe für jede Zeile ein Array, das darstellt, wie oft jedes Wort erscheint, z. [1 0 0 2 0 ... 1]. Ich verwende den CountVectorizer von Sci -Kit Learn für diese Verarbeitung - ich füttere es, die die Wörter in jeder Zeile enthalten, und es gibt das Wort Vorkommen Arrays aus. Wenn dieser Eingang aus irgendeinem Grund nicht geeignet ist, ist dies wahrscheinlich der Ort, an dem die Dinge schief gehen, aber ich habe noch nichts online oder in der Dokumentation gefunden, was darauf hindeutet, dass dies der Fall ist. < /P>

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

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post