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

132 lines
21 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!--
CO_OP_TRANSLATOR_METADATA:
{
"original_hash": "9d91f3af3758fdd4569fb410575995ef",
"translation_date": "2025-09-06T08:32:15+00:00",
"source_file": "1-Introduction/4-techniques-of-ML/README.md",
"language_code": "ru"
}
-->
# Техники машинного обучения
Процесс создания, использования и поддержки моделей машинного обучения и данных, которые они используют, сильно отличается от многих других рабочих процессов разработки. В этом уроке мы разберем этот процесс и выделим основные техники, которые вам нужно знать. Вы:
- Поймете процессы, лежащие в основе машинного обучения, на высоком уровне.
- Изучите базовые концепции, такие как "модели", "предсказания" и "обучающие данные".
## [Тест перед лекцией](https://ff-quizzes.netlify.app/en/ml/)
[![Машинное обучение для начинающих - Техники машинного обучения](https://img.youtube.com/vi/4NGM0U2ZSHU/0.jpg)](https://youtu.be/4NGM0U2ZSHU "Машинное обучение для начинающих - Техники машинного обучения")
> 🎥 Нажмите на изображение выше, чтобы посмотреть короткое видео по этому уроку.
## Введение
На высоком уровне процесс создания машинного обучения (ML) состоит из нескольких шагов:
1. **Определите вопрос**. Большинство процессов ML начинается с постановки вопроса, на который нельзя ответить с помощью простой программы с условиями или движка на основе правил. Эти вопросы часто связаны с предсказаниями на основе набора данных.
2. **Соберите и подготовьте данные**. Чтобы ответить на ваш вопрос, вам нужны данные. Качество и, иногда, количество ваших данных определят, насколько хорошо вы сможете ответить на начальный вопрос. Визуализация данных — важный аспект этого этапа. Этот этап также включает разделение данных на обучающую и тестовую группы для построения модели.
3. **Выберите метод обучения**. В зависимости от вашего вопроса и природы данных вам нужно выбрать, как вы хотите обучить модель, чтобы она лучше отражала данные и делала точные предсказания. Эта часть процесса ML требует специфической экспертизы и, часто, значительного количества экспериментов.
4. **Обучите модель**. Используя обучающие данные, вы применяете различные алгоритмы для обучения модели распознаванию закономерностей в данных. Модель может использовать внутренние веса, которые можно корректировать, чтобы выделять определенные части данных для улучшения модели.
5. **Оцените модель**. Вы используете данные, которые модель ранее не видела (ваши тестовые данные), чтобы проверить, как она работает.
6. **Настройка параметров**. На основе производительности модели вы можете повторить процесс, используя разные параметры или переменные, которые контролируют поведение алгоритмов, используемых для обучения модели.
7. **Предсказание**. Используйте новые входные данные, чтобы проверить точность вашей модели.
## Какой вопрос задать
Компьютеры особенно хороши в обнаружении скрытых закономерностей в данных. Эта способность очень полезна для исследователей, у которых есть вопросы о конкретной области, на которые нельзя легко ответить, создавая движок на основе правил. Например, при актуарной задаче аналитик данных может создать набор правил, связанных со смертностью курильщиков и некурящих.
Однако, когда в уравнение добавляется множество других переменных, модель ML может оказаться более эффективной для предсказания будущих показателей смертности на основе истории здоровья. Более жизнерадостный пример — предсказание погоды на апрель в определенном месте на основе данных, включающих широту, долготу, изменения климата, близость к океану, паттерны струйных течений и многое другое.
✅ Эта [презентация](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) о погодных моделях предлагает историческую перспективу использования ML в анализе погоды.
## Задачи перед построением модели
Перед началом создания модели есть несколько задач, которые нужно выполнить. Чтобы проверить ваш вопрос и сформировать гипотезу на основе предсказаний модели, необходимо определить и настроить несколько элементов.
### Данные
Чтобы ответить на ваш вопрос с какой-либо степенью уверенности, вам нужно достаточное количество данных нужного типа. На этом этапе нужно сделать две вещи:
- **Соберите данные**. Учитывая предыдущий урок о справедливости в анализе данных, собирайте данные с осторожностью. Учитывайте источники данных, возможные встроенные предвзятости и документируйте их происхождение.
- **Подготовьте данные**. Процесс подготовки данных включает несколько шагов. Возможно, вам нужно будет объединить данные и нормализовать их, если они поступают из разных источников. Вы можете улучшить качество и количество данных различными методами, например, преобразуя строки в числа (как мы делаем в [Кластеризации](../../5-Clustering/1-Visualize/README.md)). Вы также можете сгенерировать новые данные на основе исходных (как мы делаем в [Классификации](../../4-Classification/1-Introduction/README.md)). Вы можете очистить и отредактировать данные (как мы сделаем перед уроком о [веб-приложении](../../3-Web-App/README.md)). Наконец, возможно, вам нужно будет рандомизировать и перемешать данные в зависимости от ваших методов обучения.
✅ После сбора и обработки данных уделите время, чтобы убедиться, что их структура позволит вам ответить на поставленный вопрос. Возможно, данные не подойдут для вашей задачи, как мы обнаруживаем в уроках по [Кластеризации](../../5-Clustering/1-Visualize/README.md)!
### Признаки и целевая переменная
[Признак](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) — это измеряемое свойство ваших данных. Во многих наборах данных он представлен как заголовок столбца, например, "дата", "размер" или "цвет". Переменные признаков, обычно обозначаемые как `X` в коде, представляют входные данные, которые будут использоваться для обучения модели.
Целевая переменная — это то, что вы пытаетесь предсказать. Целевая переменная, обычно обозначаемая как `y` в коде, представляет ответ на вопрос, который вы задаете своим данным: в декабре, какого **цвета** тыквы будут самыми дешевыми? В Сан-Франциско, в каких районах будет самая выгодная **цена** на недвижимость? Иногда целевая переменная также называется меткой.
### Выбор переменных признаков
🎓 **Выбор признаков и извлечение признаков** Как выбрать переменные для построения модели? Вы, вероятно, пройдете процесс выбора признаков или их извлечения, чтобы выбрать подходящие переменные для наиболее производительной модели. Однако это не одно и то же: "Извлечение признаков создает новые признаки из функций исходных признаков, тогда как выбор признаков возвращает подмножество признаков." ([источник](https://wikipedia.org/wiki/Feature_selection))
### Визуализация данных
Важный инструмент в арсенале аналитика данных — это возможность визуализировать данные с помощью таких библиотек, как Seaborn или MatPlotLib. Визуализация данных может помочь вам обнаружить скрытые корреляции, которые можно использовать. Она также может выявить предвзятость или несбалансированность данных (как мы обнаруживаем в [Классификации](../../4-Classification/2-Classifiers-1/README.md)).
### Разделение набора данных
Перед обучением необходимо разделить набор данных на две или более части неравного размера, которые все же хорошо представляют данные.
- **Обучение**. Эта часть набора данных используется для обучения модели. Она составляет основную часть исходного набора данных.
- **Тестирование**. Тестовый набор данных — это независимая группа данных, часто взятая из исходных данных, которую вы используете для проверки производительности построенной модели.
- **Валидация**. Валидационный набор — это меньшая независимая группа примеров, которую вы используете для настройки гиперпараметров или архитектуры модели, чтобы улучшить ее. В зависимости от размера ваших данных и поставленного вопроса вам может не понадобиться создавать этот третий набор (как мы отмечаем в [Прогнозировании временных рядов](../../7-TimeSeries/1-Introduction/README.md)).
## Построение модели
Используя обучающие данные, ваша цель — построить модель, или статистическое представление ваших данных, с помощью различных алгоритмов для ее **обучения**. Обучение модели позволяет ей анализировать данные, делать предположения о закономерностях, которые она обнаруживает, и принимать или отвергать их.
### Выбор метода обучения
В зависимости от вашего вопроса и природы данных вы выберете метод обучения. Просматривая [документацию Scikit-learn](https://scikit-learn.org/stable/user_guide.html), которую мы используем в этом курсе, вы можете изучить множество способов обучения модели. В зависимости от вашего опыта вам, возможно, придется попробовать несколько методов, чтобы построить лучшую модель. Вы, скорее всего, пройдете процесс, в котором аналитики данных оценивают производительность модели, используя данные, которые она ранее не видела, проверяя точность, предвзятость и другие проблемы, ухудшающие качество, и выбирая наиболее подходящий метод обучения для текущей задачи.
### Обучение модели
Имея обучающие данные, вы готовы "подогнать" их для создания модели. Вы заметите, что во многих библиотеках ML используется код 'model.fit' — именно в этот момент вы передаете переменные признаков в виде массива значений (обычно 'X') и целевую переменную (обычно 'y').
### Оценка модели
После завершения процесса обучения (для больших моделей это может занять много итераций, или "эпох") вы сможете оценить качество модели, используя тестовые данные для проверки ее производительности. Эти данные — подмножество исходных данных, которые модель ранее не анализировала. Вы можете вывести таблицу метрик, характеризующих качество вашей модели.
🎓 **Подгонка модели**
В контексте машинного обучения подгонка модели относится к точности функции модели при анализе данных, с которыми она не знакома.
🎓 **Недообучение** и **переобучение** — это распространенные проблемы, которые ухудшают качество модели, когда она либо недостаточно хорошо, либо слишком хорошо подстраивается под данные. Это приводит к тому, что модель делает предсказания либо слишком точно соответствующие, либо слишком далекие от обучающих данных. Переобученная модель слишком хорошо предсказывает обучающие данные, так как она слишком детально изучила их особенности и шум. Недообученная модель неточна, так как она не может точно анализировать ни обучающие данные, ни данные, которые она еще не "видела".
![переобучение модели](../../../../1-Introduction/4-techniques-of-ML/images/overfitting.png)
> Инфографика от [Jen Looper](https://twitter.com/jenlooper)
## Настройка параметров
После завершения начального обучения наблюдайте за качеством модели и подумайте о ее улучшении, изменяя "гиперпараметры". Подробнее о процессе можно прочитать [в документации](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott).
## Предсказание
Это момент, когда вы можете использовать совершенно новые данные, чтобы проверить точность вашей модели. В "прикладной" среде ML, где вы создаете веб-ресурсы для использования модели в производстве, этот процесс может включать сбор пользовательских данных (например, нажатие кнопки), чтобы задать переменную и отправить ее в модель для вывода или оценки.
В этих уроках вы узнаете, как использовать эти шаги для подготовки, построения, тестирования, оценки и предсказания — все это навыки аналитика данных и многое другое, что поможет вам стать "полноценным" инженером ML.
---
## 🚀Задание
Нарисуйте блок-схему, отражающую шаги работы специалиста по ML. На каком этапе процесса вы видите себя сейчас? Где, по вашему мнению, вы столкнетесь с трудностями? Что кажется вам легким?
## [Тест после лекции](https://ff-quizzes.netlify.app/en/ml/)
## Обзор и самостоятельное изучение
Найдите в интернете интервью с аналитиками данных, которые рассказывают о своей повседневной работе. Вот [одно из них](https://www.youtube.com/watch?v=Z3IjgbbCEfs).
## Задание
[Возьмите интервью у аналитика данных](assignment.md)
---
**Отказ от ответственности**:
Этот документ был переведен с помощью сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода.