2017-12-09 4 views
0

Ich habe 30.000 Sätze nach Gefühl kategorisiert.Soll ich den Anteil der Kategorien bei einer Stratifizierung beibehalten?

Ich werde Naive Bayes verwenden.

Hier ist der Anteil (Stimmung -> Anzahl der Phrasen).

anger   98 
boredom  157 
empty   659 
enthusiasm  522 
fun   1088 
happiness  2986 
hate   1187 
love   2068 
neutral  6340 
relief  1021 
sadness  4828 
surprise  1613 
worry   7433 

Also, ich habe meine Daten-Sets in Zug/Test aufzuspalten mein Modell auszuführen, etc, nicht wahr?

Soll ich den Anteil der Kategorien bei der Stratifizierung beibehalten?

Ich meine, wenn ich 30% für die Testprobe wähle, sollte ich 30% von jedem Gefühl anstelle von 30% des gesamten Datensatzes behalten?

Ich denke ja, aber ich möchte eine erfahrene Meinung haben.

Und wie würden Sie das tun? Jeder hier kennt einen besseren Weg das zu tun, anstatt eine Python-Schleife auszuführen, welches Sentiment zu testen, 30% zu berechnen, ein Wörterbuch usw. zu schreiben?

Gibt es einen Pandastrick, der nach einer Kategoriefunktion stratifiziert werden kann, wobei der Anteil beibehalten wird?

Antwort

1

Soll ich den Anteil der Kategorien bei der Stratifizierung beibehalten?

Sie scheinen ein wenig verwirrt in Bezug auf die Terminologie; die genaue Definition von Stratifizierung (oder stratified sampling) ist genau die Proportionen zu erhalten, sonst ist es eine einfache Stichprobe.

Wenn ich 30% für die Testprobe auswähle, sollte ich 30% jedes Sentiments anstatt 30% des gesamten Datensatzes behalten?

Sie sind nicht widersprüchlich, oder? Wenn Sie 30% jeder Kategorie behalten, erhalten Sie nicht die 30% Ihres ursprünglichen Sets?

Gibt es einen Pandastrick, der durch eine Kategoriefunktion geschichtet werden kann, um den Anteil beizubehalten?

Sie wissen nicht, über Pandas, aber Scikit-Learn (was ich denke, Sie nächstes verwenden werden) model_selection.train_test_split eine solche stratify Option beinhaltet:

from sklearn.model_selection import train_test_split 
X_train, X_test, y_train, y_test = train_test_split(X, y, 
                stratify=y, 
                test_size=0.3) 
+1

für die Erklärung Vielen Dank! –

+0

@AlexanderFrancaFernandes Sie sind herzlich willkommen – desertnaut

Verwandte Themen