Pandas читает df случайно - PullRequest
       5

Pandas читает df случайно

0 голосов
/ 25 апреля 2020

Я недавно пробовал эту проблему множественной классификации на Kaggle, и это value_counts() для меток:

2     1661772
4     1613640
8     1471098
5     1389385
9     1361200
3     1337218
7     1325075
6     1316784
10    1250655
1     1240152
0     1240152

Теперь я знаю, что она не сбалансирована, поэтому прежде всего мне нужно знаю, как его сбалансировать

Мне также нужно прочитать файл порциями, потому что у меня всего 16 ГБ памяти, и этого недостаточно, поэтому я использовал:

data_chunks = pd.read_csv(filename, chunk_size=1024)
data = next(iter(data_chunks))

и переменная data содержит 1024 элемента, и все метки являются нулями, что представляет серьезную угрозу для нуля, потому что моя модель просто тренируется, чтобы вернуть ноль для всего. Поэтому мне нужно знать, как рандомизировать выбор фрагментов в функции read_csv()

Заранее спасибо

PS: я только что начал с реальных наборов данных вместо игрушечных на scikit-learn, и если я допустил ошибку ладьи ie, тогда, пожалуйста, извините я

Ответы [ 2 ]

1 голос
/ 25 апреля 2020
data_chunks = pd.read_csv(filename, chunk_size=1024)
for chunk in data_chunks:
    process(chunk)

Благодаря этому вы можете получить доступ ко всем чанкам, теперь есть несколько способов выбрать сбалансированный набор данных класса, создав новый фрейм данных со всеми равными классами, исключая чанки.

Также я бы рекомендовал использовать DASK для больших фреймов данных, которые нельзя напрямую загрузить в память. Он не меняет синтаксис pandas и работает как шарм на больших фреймах данных!

1 голос
/ 25 апреля 2020

эй, вы можете использовать образец (фра c = 0,20), это будет получать случайные 20% данных из вашего CSV, вы можете настроить соответственно

data_chunks = pd.read_csv(filename).sample(frac = 0.20)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...