#6 – Подготовка данных - 80% успеха

#6 – Подготовка данных - 80% успеха

В уроке вы узнаете больше информации про подготовку данных для создания успешного машинного обучения. Также мы рассмотрим примеры кода для очистки и обработки данных.

Видеоурок

Чистка данных: пропуски, нормализация, категории

Когда вы загружаете данные — будь то Excel-таблица, CSV-файл или данные из API — они почти всегда «грязные». Это значит, что могут быть пустые значения, ошибки во вводе, разные форматы даты и многое другое.


Первое, что нужно сделать, — это взглянуть на данные глазами. Просто открыть их и посмотреть: где пропущены значения, где вместо числа стоит строка. В Python для этого часто используют библиотеку pandas, потому что с её помощью можно легко прочитать таблицу, просмотреть первые строки, увидеть статистику по столбцам и т.д.


Если вы видите, что в каком-то столбце есть NaN (пустое значение), есть два варианта: либо удалить такие строки, либо заполнить пропуски средним значением, медианой, нулём или даже предсказанным значением. Всё зависит от ситуации.


Следующий важный шаг — нормализация данных. Алгоритмы машинного обучения чувствительны к масштабам. Если один столбец измеряется в километрах, а другой — в метрах или в долларах, результат может быть некорректным. Нормализация — это приведение всех чисел к одному масштабу, чаще всего от 0 до 1.


Ещё одна частая проблема — категориальные данные. Например, в столбце «Пол» указано «М» и «Ж», или в столбце «Город» — «Лондон», «Париж», «Милан». Алгоритмы не понимают текст, поэтому такие значения нужно перевести в числа. Это называется one-hot encoding.

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


Разделение на тренировочные и тестовые данные

Когда у вас готовы данные, важно не поддаться соблазну и сразу не обучать модель на всём датасете. Вы обязательно должны разделить данные на две части: train и test. Обучение происходит только на train, а оценка качества модели — на test. Это помогает понять, как модель будет работать на новых, невиданных данных.


В Python для этого чаще всего используют функцию train_test_split из библиотеки sklearn. Параметр test_size=0.2 означает, что 20% данных уйдут в тестовую выборку. А random_state просто фиксирует случайность, чтобы результат был воспроизводим.


Переобучение (overfitting) и как его избежать

Одна из самых частых ошибок — это переобучение. Это ситуация, когда модель слишком хорошо запоминает тренировочные данные, но плохо работает на новых. Например, вы натренировали модель угадывать цену квартиры по площади и расположению, и на тренировочных данных она идеально предсказывает цену. Но стоит ей показать новую квартиру — и она ошибается.


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


Чтобы избежать переобучения, старайтесь:

  • Использовать простой алгоритм (не нейросеть, если в этом нет необходимости);
  • Добавлять регуляризацию;
  • Увеличивать тренировочную выборку;
  • И рано останавливать обучение.

Также стоит посмотреть

Python FastAPI / Изучение библиотеки с нуля
8 уроков
Уроки ChatGPT API / Разработка программ на Python и ChatGPT
7 уроков
Изучение Асинхронности Python
5 уроков
Telegram Bots: Создание ботов на Python Aiogram
10 уроков
Уроки Python для начинающих
21 урок
Нейронные сети / Изучение Python OpenCV
9 уроков
Комментарии
Добавить комментарий

Пока комментариев нет