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

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

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

Відеоурок

Telegram group

Підписуйтесь на нашу групу в Телеграмі 🇺🇦

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

Когда вы загружаете данные — будь то 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) и как его избежать

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


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


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

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

Також варто подивитися

Изучение PyQt5 / Графический интерфейс на Python
6 уроків
Разработка Telegram Ботов на Python
11 уроків
Python Data Science / Обработка данных (Scikit-learn, TensorFlow)
11 уроків
Уроки Python Django / Розробка сайту
12 уроків
Изучение Python UI (GUI Apps) / Программы на Питон
10 уроків
Вивчення Python до профі / Основи, Django, TKinter
Коментарі
Додати коментар

Поки що коментарів немає