Недавно я получил этот набор данных, который слишком велик для моей оперативной памяти. Я должен прочитать его кусками, используя
pd.read_csv('filename.csv', chunksize=1024)
И все метки в наборе данных являются непрерывными, то есть все нули вместе, и единицы, и двойки. Каждый ярлык содержит 12000, поэтому в каждом чанке есть все нули, единицы или двойки.
Проблема, с которой я сталкиваюсь, - даже если я использую randomize
и test_train_split
, я все равно получаю все те же ярлыки в своем данные поезда. В результате этого моя модель учится выводить одно значение для любого входа. Постоянный результат зависит от случайного начального числа. Мне нужно знать, как исправить эту ошибку.
РЕДАКТИРОВАТЬ: Вот код, который запрашивается
data_in_chunks = pd.read_csv(data_file, chunksize=4096)
data = next(iter(data_in_chunks)
X = data.drop(['labels'], axis=1)
Y = data.labels
X_train, X_val, Y_train, Y_val = train_test_split(X, Y, stratify=Y, random_state=0) # train test random state has no effect
for i in iter(data_in_chunks):
train(i) # this is just simplified i used optim in the actual code
, поэтому, чтобы объяснить проблему другими словами, 4096 является самым высоким chunksize
мой 16 гигабайт оперативной памяти могут обрабатывать, и из-за последовательной природы всех меток, все мои Y_train
и Y_test
имеют только 0, или 1 или 2 (все возможные выходы)
Пожалуйста, помогите Заранее спасибо