Случайное начальное значение в сравнении моделей машинного обучения

Вопрос или проблема

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

Например, я использовал seed = 1 и получил точность 0.7, seed = 5 и получил точность 0.8, а seed = 2000 и получил точность 0.89, используя Adaboost.

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

То же самое существует и для других научных статей.

Какие результаты мне нужно выбрать, чтобы сравнить свою модель с другими моделями, предложенными в литературе? Тем временем я реализовал все модели, предложенные в литературе, с разными seed и обнаружил, что результаты отличаются по сравнению с публикацией. А иногда мои результаты с adaboost оказываются лучше.

Мне нужна помощь, чтобы сравнить мое предложение с другими работами.

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

  • зафиксировать случайный seed, проверить, что разделение неbiased и провести несколько обучений. Даже с тем же разделением, одна и та же модель может сходиться к разным локальным минимумам из-за стохастического спуска;
  • не фиксировать случайный seed и провести несколько обучений (но сохранить seed, когда будете хранить данные эксперимента!).

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

Лучший способ избежать вашей проблемы — использование K-Fold кросс-валидации. Разница в 0.1 в точности между 2 seed — это много, поэтому я рекомендую вам использовать кросс-валидацию с случайными разделениями (вы можете, например, перемешать ваши данные перед входом в цикл кросс-валидации). Проведение Кросс-Валидации дважды, перемешивая данные перед этим, может дать вам небольшое изменение (из-за перемешивания наборы кросс-валидации не будут точно такими же), но я сильно сомневаюсь, что это будет так же высоко, как 0.1. Тогда вы сможете сравнить свою модель, поскольку вы используете стабильный процесс оценки.

Ответ или решение

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

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

Рекомендации по сравнению моделей

  1. Фиксация начального состояния (Seed): Если вы выбрали фиксированное значение seed и провели несколько прогонов, вы можете быть уверены, что используете одну и ту же разбивку данных. В этом случае важно проверить, не подвергается ли ваша модель переобучению на тех же данных, что также может влиять на точность.

  2. Кросс-валидация: Хорошей практикой является использование K-Fold кросс-валидации. Это позволит вам получить более стабильную оценку производительности, поскольку данные будут разбиты на несколько частей, и каждая часть будет использоваться в качестве тестовой выборки разнообразное количество раз. Этот метод минимизирует влияние случайных вариаций и делает ваши результаты более надежными.

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

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

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

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...