sklearn geschichtete Stichprobe basierend auf einer Spalte
Ich habe eine ziemlich große CSV-Datei mit Amazon Review-Daten, die ich in einen Pandas-Datenrahmen eingelesen habe. Ich möchte die Daten zwischen 80 und 20 teilen (Zugtest), aber dabei möchte ich sicherstellen, dass die geteilten Daten proportional zu den Werten einer Spalte (Kategorien) sind, dh alle verschiedenen Kategorien von Bewertungen sind in beiden Zügen vorhanden und Testdaten proportional.
Die Daten sehen folgendermaßen aus:
**ReviewerID** **ReviewText** **Categories** **ProductId**
1212 good product Mobile 14444425
1233 will buy again drugs 324532
5432 not recomended dvd 789654123
Verwenden Sie dazu den folgenden Code:
import pandas as pd
Meta = pd.read_csv('C:\\Users\\xyz\\Desktop\\WM Project\\Joined.csv')
import numpy as np
from sklearn.cross_validation import train_test_split
train, test = train_test_split(Meta.categories, test_size = 0.2, stratify=y)
it gibt den folgenden Fehler aus
NameError: name 'y' is not defined
Als ich relativ neu in Python bin, kann ich nicht herausfinden, was ich falsch mache oder ob dieser Code basierend auf Spaltenkategorien geschichtet wird. Es scheint gut zu funktionieren, wenn ich die Stratify-Option sowie die Categories-Spalte aus dem Train-Test-Split entferne.
Jede Hilfe wird geschätzt.