Хобрук: Ваш путь к мастерству в программировании

Кривые обучения - почему точность обучения сначала так высока, а затем внезапно падает?

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

Просто чтобы дать вам некоторую информацию, чтобы построить кривую обучения, я определил функцию, которая принимает модель, предварительно разбитый набор данных (обучающие / тестовые массивы X и Y, NB: с использованием функции train_test_split), функцию оценки в качестве входных данных и итерацию через набор данных обучения на n экспоненциально разнесенных подмножествах и возвращает кривые обучения.

Мои результаты представлены на изображении ниже  введите описание изображения здесь

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

И, наконец, можем ли мы предположить, что эти результаты означают низкую дисперсию / умеренную систематическую ошибку (70% -ная точность в моем контексте не так уж и плоха), и поэтому для улучшения моей модели я должен прибегнуть к методам ансамбля или экстремальному проектированию функций?


Ответы:


1

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

После набора данных 10 ^ 3 точность, похоже, выровняется до 70%, что говорит о том, что вы достигли хорошего баланса между переобучением обучения и недостаточным подбором тестовых данных.

02.05.2016
  • Спасибо, что поделились своим мнением. Считаете ли вы, что выполнение некоторых настроек, таких как разработка экстремальных функций или ансамблевые методы, поможет мне повысить точность? Или, может быть, я достиг предела точности из-за шума данных (неразличимая ошибка). 02.05.2016
  • @ DiamondDogs95 Привет! К сожалению, трудно сказать, не зная, как выглядят данные (домен приложения, функции и т. Д.) 02.05.2016

  • 2

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

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

    02.06.2017
    Новые материалы

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

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

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

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

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

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..