Меню курса

Урок 5. Оценка результатов машинного обучения

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

Цель урока: познакомиться с процессом оценки результатов машинного обучения и понять, как она осуществляется.

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

Содержание:

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

Разделение выборки на обучающую и тестовую

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

 

Как правило, выборка разделяется на обучающую и тестовую в пропорции 70/30 или 80/20. Например, мы можем использовать 70% данных для обучения модели, а оставшиеся 30% оставить для тестирования.

Процесс разделения выборки на обучающую и тестовую состоит из нескольких шагов:

  1. Сначала необходимо перемешать данные, чтобы избежать возможной сортировки по какому-то признаку и сохранить случайность.
  2. Далее мы отделяем часть данных для тестирования и сохраняем ее в отдельную переменную. Например, мы можем использовать функцию train_test_split из библиотеки sklearn на языке Python (где X – это матрица признаков, y – это вектор целевых переменных, test_size – это доля данных, которую мы отделяем для тестирования, а random_state – это значение для генерации случайных чисел):

Функция

  1. Мы используем X_train и y_train для обучения модели и X_test и y_test для оценки ее качества. После того, как модель обучена на обучающей выборке, мы применяем ее к тестовой выборке и оцениваем ее качество, например, используя метрику точности или среднеквадратичную ошибку.
  2. После оценки качества модели мы можем вернуться к шагу 2 и изменить параметры разделения, если это необходимо, например, увеличивая или уменьшая долю тестовой выборки. Также мы можем изменять параметры модели и использовать методы кросс-валидации и подбора гиперпараметров для получения более точных результатов (об этом мы поговорим ниже).

Дополнительно есть несколько важных соображений, которые следует учитывать при разделении выборки на обучающую и тестовую:

Разделение выборки должно быть выполнено случайным образом, чтобы исключить возможность включения более представительных или необычных данных в одну из выборок. Это помогает обеспечить более точную оценку качества модели на новых данных.
Если у вас маленькая выборка, лучше использовать метод перекрестной проверки (cross-validation), который позволяет более эффективно использовать имеющиеся данные. В этом случае выборка разделяется на несколько частей (например, 5 или 10), и модель обучается на каждой части и тестируется на оставшейся части. Каждая часть выступает как тестовая выборка один раз. В результате мы получаем несколько оценок качества модели, которые могут быть усреднены для получения более точной оценки.
Некоторые данные могут содержать несбалансированные классы, т.е. один из классов может быть представлен значительно меньшим количеством данных, чем другой. В этом случае важно сохранить балансировку классов при разделении выборки на обучающую и тестовую. Для этого можно использовать параметр stratify при вызове функции train_test_split.
Необходимо помнить, что выборка может содержать выбросы, которые способны исказить оценку качества модели на тестовой выборке. Для этого можно использовать методы обнаружения выбросов (например, метод межквартильного размаха) и удалить выбросы из обучающей выборки.
Важно не использовать тестовую выборку для настройки параметров модели, т.к. это может привести к переобучению. Настройку параметров следует производить только на обучающей выборке, а тестовую выборку использовать только для оценки качества модели. Если нужно настроить параметры, можно использовать метод перекрестной проверки, о котором упоминалось выше.

Кроме разделения на обучающую и тестовую выборки, в некоторых случаях может быть полезно использовать еще одну выборку – выборку для проверки (validation set). Выборка для проверки используется для выбора наилучших гиперпараметров модели, т.е. параметров, которые не могут быть оптимизированы во время обучения модели, но влияют на ее качество. Примерами гиперпараметров могут быть число скрытых слоев в нейронной сети, скорость обучения и другие параметры, которые можно настроить вручную.

Процесс использования выборки для проверки состоит из следующих шагов:

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

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

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

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

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

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

Плюс ко всему, выборки тесно связаны с метриками качества. Они позволяют измерить эффективность модели, отображают точность, полноту, F1-меру, среднеквадратическую ошибку (MSE) и другие показатели, которые позволяют оценить, насколько хорошо модель выполняет задачу.

Метрики качества  

Метрики качества – это способ оценки производительности модели машинного обучения на основе ее способности предсказывать правильные ответы для тестовой выборки.

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

Для задач классификации:

  • Accuracy (Точность) – доля правильных ответов модели среди всех предсказаний.
  • Precision (Точность) – доля истинно положительных ответов среди всех положительных ответов модели.
  • Recall (Полнота) – доля истинно положительных ответов среди всех правильных ответов.
  • F1-мера – гармоническое среднее между точностью и полнотой.

Для задач регрессии:

  • Mean Squared Error (MSE) – среднее значение квадрата разности между предсказанными и правильными значениями.
  • Root Mean Squared Error (RMSE) – квадратный корень из среднего значения квадратов разности между предсказанными и правильными значениями.
  • Mean Absolute Error (MAE) – среднее значение абсолютной разности между предсказанными и правильными значениями.
  • R2-коэффициент детерминации – мера, которая показывает, насколько хорошо модель подходит для данных. R2-коэффициент может принимать значения от 0 до 1, где 1 означает идеальное соответствие.

Для задач кластеризации:

  • Silhouette score (Коэффициент силуэта) – мера, которая показывает, насколько точно каждый объект соответствует своему кластеру и насколько он отличается от других кластеров. Значение коэффициента силуэта может варьироваться от -1 до 1, где 1 означает, что объекты внутри кластера находятся ближе друг к другу, чем к объектам других кластеров.

Кроме этих метрик, в зависимости от конкретной задачи машинного обучения могут быть использованы и другие метрики качества. Например, для задачи рекомендательной системы может использоваться Precision@k (точность на k рекомендациях), где k – это количество рекомендаций, которые модель должна дать пользователю.

Выбор наиболее подходящей метрики зависит от конкретной задачи и целей машинного обучения. Например, если наша цель – максимизировать количество истинно положительных ответов, то метрика Precision будет более важна, чем Recall. Если же наша задача состоит в том, чтобы избежать ложно отрицательных ответов, то Recall будет более актуальной.

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

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

Кросс-валидация и подбор гиперпараметров

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

Кросс-валидация – это метод оценки производительности модели, состоящий в том, чтобы разбить обучающую выборку на несколько фолдов (частей), обучить модель на каждом фолде, используя остальные фолды для валидации, и усреднить результаты. Этот метод позволяет получить более точную оценку производительности модели, т.к. использует все доступные данные для обучения и валидации.

Существует несколько типов кросс-валидации, в частности:

1
K-fold кросс-валидация – метод, который разбивает обучающую выборку на K фолдов, где K – это количество фолдов. Затем модель обучается на K-1 фолдах и валидируется на оставшемся фолде. Этот процесс повторяется K раз и каждый раз используется другой фолд для валидации.
2
Leave-One-Out кросс-валидация – метод, который использует все данные, кроме одного объекта, для обучения модели, а затем применяет оставшийся объект для валидации. Этот процесс повторяется для каждого объекта в обучающей выборке.

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

Существует несколько методов подбора гиперпараметров, среди которых:

  • Grid Search – метод, который перебирает все возможные комбинации гиперпараметров и выбирает ту, которая дает наилучшие результаты.
  • Random Search – метод, который выбирает случайные значения гиперпараметров и оценивает производительность модели для каждой комбинации.
  • Bayesian Optimization – метод, который использует вероятностные модели для определения оптимальных значений гиперпараметров.

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

Некоторые методы, такие как Grid Search, могут быть очень затратными, особенно при большом количестве гиперпараметров и больших объемах данных. В таких случаях можно использовать более эффективные методы, например, Random Search или Bayesian Optimization.

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

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

Задание на взаимную проверку

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

Найдите открытый набор данных, который относится к интересующей вас области, например, к здравоохранению или финансовым рынкам. Разбейте выбранный набор данных на обучающую и тестовую выборки. Используйте простой метод разбиения на обучение и тестирование, например, случайное разбиение на 70% обучающей выборки и 30% тестовой выборки.

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

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

Интерпретация результатов машинного обучения

Интерпретация результатов машинного обучения – это процесс понимания того, как модель принимает решения и как работает в целом. Он очень важен для принятия решений на основе модели и обеспечения ее прозрачности и объяснимости.

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

Для интерпретации результатов машинного обучения можно использовать различные методы, включая методы, основанные на теории игр, такие как SHAP (SHapley Additive exPlanations), и методы, основанные на интерпретации локальных моделей, такие как LIME (Local Interpretable Model-agnostic Explanations).

Коротко о каждом из них:

1 Метод SHAP использует теорию игр, чтобы определить вклад каждого признака в принятие решений моделью. Он представляет каждый объект входных данных как комбинацию признаков и определяет, какой вклад каждый признак вносит в принятие решений моделью для данного объекта. Результаты SHAP показывают, какие признаки наиболее важны для принятия решений моделью на уровне отдельных объектов.
2 Метод LIME использует локальную модель для интерпретации результатов машинного обучения. Он представляет объекты входных данных в виде набора признаков и оценивает вклад каждого признака в принятие решений моделью для данного объекта. LIME использует локальную модель, чтобы приблизить поведение исходной модели в окрестности данного объекта и показать, какие признаки наиболее важны для принятия решений для данного объекта.

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

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

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

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

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

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

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

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

Проверьте свои знания

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

Заключительный урок посвящен последствиям применения искусственного интеллекта.