Машинное обучение доступным языком - страница 6

Шрифт
Интервал


df = pd.read_csv('https://www.dropbox.com/s/62xm9ymoaunnfg6/bank-full.csv?dl=1', sep=';')

df.head()

Параметр sep используется, чтобы задать нестандартный разделитель данных по столбцам, в данном случае – точку с запятой.



Все столбцы мы отображать здесь, конечно, не будем

Удаление дубликатов

(duplicates removing) Повторяющиеся записи искажают статистические показатели. Всего несколько повторов – и среднее значение столбца сместится в их пользу. Дубликаты также снижают качество обучения модели. Для начала уточним, сколько у нас строк с помощью df.shape. Затем удалим повторы с помощью drop_duplicates() и обновим данные о размере данных:

print(df.shape)

df.drop_duplicates(inplace=True)

print(df.shape)

Библиотека pandas вообще сопровождает любителей и профессионалов на каждом шагу, так что у некоторых ее компонентов параметры одинаковые. Чтобы удалить повторы “на месте”, без излишнего перекопирования датафрейма, дополняем drop_duplicates() параметром inplace, равным True.

Ячейка выдает, что удалила 41188 – 41176 = 12 дубликатов:

(41188, 21)

(41176, 21)

Хоть число и небольшое, все же качество набора мы повысили.

Обработка пропусков

(omission handling) Если пропусков у признака-столбца слишком много (более 70%), такой признак удаляют. Проверим, насколько разрежены наши признаки:

df.isnull().mean() * 100

Метод isnull() пройдется по каждой ячейке каждого столбца и определит, кто пуст, а кто нет. Метод mean() определит концентрацию пропусков в каждом столбце. На 100 мы умножаем, чтобы получить значение в процентах: