You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/ru/1-Introduction/4-techniques-of-ML/README.md

22 KiB

Техники машинного обучения

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

  • Поймете процессы, лежащие в основе машинного обучения на высоком уровне.
  • Изучите базовые концепции, такие как «модели», «предсказания» и «обучающие данные».

Тест перед лекцией

ML для начинающих - Техники машинного обучения

🎥 Нажмите на изображение выше, чтобы посмотреть короткое видео по этому уроку.

Введение

На высоком уровне процесс создания машинного обучения (ML) состоит из нескольких шагов:

  1. Определите вопрос. Большинство процессов ML начинается с постановки вопроса, который нельзя ответить с помощью простой программы с условными операторами или движка на основе правил. Эти вопросы часто связаны с предсказаниями на основе набора данных.
  2. Соберите и подготовьте данные. Чтобы ответить на ваш вопрос, вам нужны данные. Качество и, иногда, количество ваших данных определят, насколько хорошо вы сможете ответить на первоначальный вопрос. Визуализация данных — важный аспект этого этапа. Этот этап также включает разделение данных на обучающую и тестовую группы для построения модели.
  3. Выберите метод обучения. В зависимости от вашего вопроса и характера данных вам нужно выбрать, как вы хотите обучить модель, чтобы она лучше отражала ваши данные и делала точные предсказания. Это часть процесса ML, которая требует специфических знаний и, часто, значительного количества экспериментов.
  4. Обучите модель. Используя обучающие данные, вы будете использовать различные алгоритмы для обучения модели распознавать шаблоны в данных. Модель может использовать внутренние веса, которые можно настроить, чтобы выделить определенные части данных для построения более качественной модели.
  5. Оцените модель. Вы используете данные, которые модель никогда не видела (ваши тестовые данные), чтобы проверить, как она работает.
  6. Настройка параметров. На основе производительности модели вы можете повторить процесс, используя разные параметры или переменные, которые контролируют поведение алгоритмов, используемых для обучения модели.
  7. Предсказание. Используйте новые входные данные, чтобы проверить точность вашей модели.

Какой вопрос задать

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

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

Эта презентация о погодных моделях предлагает историческую перспективу использования ML в анализе погоды.

Задачи перед созданием модели

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

Данные

Чтобы ответить на ваш вопрос с какой-либо степенью уверенности, вам нужно достаточное количество данных нужного типа. На этом этапе необходимо сделать два шага:

  • Соберите данные. Учитывая предыдущий урок о справедливости в анализе данных, собирайте данные с осторожностью. Учитывайте источники этих данных, любые присущие им предвзятости и документируйте их происхождение.
  • Подготовьте данные. Процесс подготовки данных включает несколько шагов. Возможно, вам нужно будет объединить данные и нормализовать их, если они поступают из разных источников. Вы можете улучшить качество и количество данных различными методами, такими как преобразование строк в числа (как мы делаем в Кластеризации). Вы также можете генерировать новые данные на основе оригинальных (как мы делаем в Классификации). Вы можете очистить и отредактировать данные (как мы сделаем перед уроком Веб-приложения). Наконец, возможно, вам нужно будет рандомизировать и перемешать данные в зависимости от ваших методов обучения.

После сбора и обработки данных уделите время, чтобы понять, позволят ли они вам ответить на ваш вопрос. Возможно, данные не будут хорошо работать для вашей задачи, как мы обнаруживаем в уроках Кластеризации!

Признаки и целевая переменная

Признак — это измеряемое свойство ваших данных. Во многих наборах данных он выражается как заголовок столбца, например, «дата», «размер» или «цвет». Переменная признака, обычно обозначаемая как X в коде, представляет входную переменную, которая будет использоваться для обучения модели.

Целевая переменная — это то, что вы пытаетесь предсказать. Целевая переменная, обычно обозначаемая как y в коде, представляет ответ на вопрос, который вы пытаетесь задать вашим данным: в декабре, какого цвета тыквы будут самыми дешевыми? В Сан-Франциско, какие районы будут иметь лучшую цену на недвижимость? Иногда целевая переменная также называется меткой.

Выбор переменной признака

🎓 Выбор признаков и извлечение признаков Как выбрать переменную для построения модели? Вы, вероятно, пройдете процесс выбора признаков или извлечения признаков, чтобы выбрать правильные переменные для наиболее производительной модели. Однако это не одно и то же: «Извлечение признаков создает новые признаки из функций оригинальных признаков, тогда как выбор признаков возвращает подмножество признаков.» (источник)

Визуализация данных

Важным аспектом инструментария специалиста по данным является возможность визуализировать данные с помощью нескольких отличных библиотек, таких как Seaborn или MatPlotLib. Визуализация данных может позволить вам обнаружить скрытые корреляции, которые вы можете использовать. Ваши визуализации также могут помочь вам выявить предвзятость или несбалансированные данные (как мы обнаруживаем в Классификации).

Разделение набора данных

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

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

Создание модели

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

Выбор метода обучения

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

Обучение модели

Имея обучающие данные, вы готовы «подогнать» их для создания модели. Вы заметите, что во многих библиотеках ML вы найдете код 'model.fit' — именно в этот момент вы передаете переменную признака в виде массива значений (обычно 'X') и целевую переменную (обычно 'y').

Оценка модели

После завершения процесса обучения (для обучения большой модели может потребоваться много итераций, или «эпох») вы сможете оценить качество модели, используя тестовые данные для проверки ее производительности. Эти данные являются подмножеством оригинальных данных, которые модель ранее не анализировала. Вы можете вывести таблицу метрик о качестве вашей модели.

🎓 Подгонка модели

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

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

переобучение модели

Инфографика от Jen Looper

Настройка параметров

После завершения первоначального обучения наблюдайте за качеством модели и подумайте о ее улучшении, изменяя ее «гиперпараметры». Подробнее о процессе можно прочитать в документации.

Предсказание

Это момент, когда вы можете использовать совершенно новые данные для проверки точности вашей модели. В «прикладной» среде ML, где вы создаете веб-активы для использования модели в производстве, этот процесс может включать сбор пользовательского ввода (например, нажатие кнопки), чтобы установить переменную и отправить ее в модель для вывода или оценки.

В этих уроках вы узнаете, как использовать эти шаги для подготовки, создания, тестирования, оценки и предсказания — все действия специалиста по данным и многое другое, по мере вашего продвижения на пути к становлению «полноценным» инженером ML.


🚀Задача

Нарисуйте блок-схему, отражающую шаги специалиста по ML. На каком этапе процесса вы видите себя сейчас? Где, по вашему мнению, вы столкнетесь с трудностями? Что кажется вам легким?

Тест после лекции

Обзор и самостоятельное изучение

Найдите в интернете интервью с специалистами по данным, которые рассказывают о своей ежедневной работе. Вот одно.

Задание

Возьмите интервью у специалиста по данным


Отказ от ответственности:
Этот документ был переведен с помощью сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода.