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
localizeflow[bot] ec25fb32a8
chore(i18n): sync translations with latest source changes (chunk 1/1, 12 changes)
4 months ago
..
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 12 changes) 4 months ago
assignment.md chore(i18n): sync translations with latest source changes (chunk 1/1, 300 changes) 7 months ago

README.md

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

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

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

Квиз перед лекцией

ML for beginners - Techniques of Machine Learning

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

Введение

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

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

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

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

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

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

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

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

Данные

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

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

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

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

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

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

Выбор признака

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

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

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

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

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

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

Построение модели

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

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

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

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

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

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

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

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

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

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

overfitting model

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

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

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

Прогнозирование

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

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


🚀 Задание

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

Квиз после лекции

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

Ищите в интернете интервью с учёными данных, которые рассказывают о своей повседневной работе. Вот одно из них.

Домашнее задание

Возьмите интервью у учёного данных


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