Как узнать, что ваша проблема машинного обучения безнадежна?

207

Представьте себе стандартный сценарий машинного обучения:

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

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

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

Отказ от ответственности: этот вопрос был вдохновлен этим Когда я должен прекратить искать модель? это не привлекло большого внимания. Было бы неплохо иметь подробный ответ на такой вопрос для справки.

Тим
источник
1
На эту проблему можно ответить в практических терминах (как @StephanKolassa) или в абсолютных терминах (своего рода теорема, которая показывает, что данная модель может изучить проблему, если выполняются определенные условия). Какой вы хотите?
Superbest
3
Это похоже на классическую проблему компьютерных наук? Допустим, у вас есть некоторый алгоритм A произвольной сложности, который просматривает входные данные D в поисках прогнозных моделей, и алгоритм останавливается, когда находит «хорошую» модель для данных. Не добавляя существенной структуры для A и D, я не вижу, как вы могли бы сказать, остановит ли A когда-либо заданный ввод D, как вы можете определить, будет ли A в конечном счете успешным или продолжит поиск навсегда?
Мэтью Ганн,
@ Superbest это может быть и другое. Если вам есть что добавить, смело отвечайте. Я никогда не слышал о теореме, в которой говорится что-либо о работе с многомерными данными с шумом в реальной жизни, но если вы знаете, что применимо, то мне было бы интересно прочитать ваш ответ.
Тим
3
Основываясь на ответе @ StephenKolassa, можно задать еще один вопрос: «В какой момент я должен передать свою работу специалистам в данной области и обсудить свои результаты (или отсутствие результатов)?»
Роберт де Грааф
Также связанная ветка: stats.stackexchange.com/questions/28057/…
Ян Кукацка

Ответы:

240

прогнозируемость

Вы правы в том, что это вопрос прогнозируемости. Там было несколько статей о прогнозируемости в практикующей-ориентированный журнал IIF в Форсайт . (Полное раскрытие: я помощник редактора.)

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

Несколько примеров

Предположим, у вас есть такие временные ряды, но вы не говорите по-немецки:

яйца

Как бы вы смоделировали большой пик в апреле и как бы вы включили эту информацию в любые прогнозы?

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

Аналогичным образом, предположим, что у вас есть синяя линия ниже, и вы хотите смоделировать то, что произошло 2010-02-28, настолько отличным от «нормальных» шаблонов 2010-02-27:

хоккейная игра

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

Наконец, посмотрите на это:

останец

Это временной ряд ежедневных продаж в магазине наличных денег . (Справа у вас есть простая таблица: 282 дня имели нулевые продажи, 42 дня - 1 ... и один день - 500.) Я не знаю, что это за товар.

До сегодняшнего дня я не знаю, что произошло в тот день с продажами в 500. Я думаю, что некоторые клиенты предварительно заказали большое количество любого продукта и собрали его. Теперь, не зная этого, любой прогноз на этот конкретный день будет далеко. И наоборот, предположим, что это произошло прямо перед Пасхой, и у нас есть тупой умный алгоритм, который полагает, что это может быть эффектом Пасхи (может быть, это яйца?), И с радостью прогнозирует 500 единиц на следующую Пасху. Ой, может , что пойдет не так.

Резюме

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

[T] здесь известны известные; Есть вещи, которые мы знаем, мы знаем. Мы также знаем, что есть известные неизвестные; то есть мы знаем, что есть некоторые вещи, которые мы не знаем. Но есть и неизвестные неизвестные - те, которых мы не знаем, мы не знаем.

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

Единственный способ справиться с этим - собрать знания о предметной области.

Выводы

Из этого я делаю три вывода:

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

Нижняя линия

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

  1. Поговорите с кем-нибудь, обладающим знанием предметной области, если у вас его еще нет.
  2. Определите основные движущие силы данных, которые вы хотите прогнозировать, включая вероятные взаимодействия, на основе шага 1.
  3. Построение моделей итеративно, включая драйверы в порядке убывания прочности согласно шагу 2. Оцените модели, используя перекрестную проверку или выборочный образец.
  4. Если точность вашего прогноза больше не увеличивается, либо вернитесь к шагу 1 (например, выявив вопиющие неправильные прогнозы, которые вы не можете объяснить, и обсудив их с экспертом по предметной области), либо примите, что вы достигли конца своего возможности моделей. Тайм-бокс вашего анализа заранее помогает.

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

Стефан Коласса
источник
10
+1 за чудесный ответ, с которым я полностью согласен. Я не принимаю это (пока), так как все еще надеюсь на другие ответы, так как проблема широкая.
Тим
1
Конечно. Я бы тоже хотел увидеть чью-то точку зрения на это!
Стефан Коласса
9
If you are forecasting a fair coin toss, then there is no way to get above 50% accuracy., Вы сказали все там.
Уолфрат
3
Используя знание предметной области, вы можете добавлять новые функции в первые два случая (например, время до Пасхи и просмотр телевизионных номеров, хотя последний нуждается в собственном прогнозировании), чтобы получить гораздо лучшие результаты. Ни в том, ни в другом случае ситуация не безнадежна. Действительно интересная часть состоит в том, как отличить недостающие знания предметной области от набора данных честных бросков монет.
Каролис Юоделе
4
@ KarolisJuodelė: это как раз моя точка зрения. Мы даже не можем знать, когда наша ситуация безнадежна, если мы не поговорим с экспертом ... а потом, иногда эксперт тоже не может нам помочь, и у экспертов есть "неизвестные неизвестные", которые, возможно, может кто-то другой знать.
Стефан Коласса
57

Ответ от Стефана Коласса превосходен, но я хотел бы добавить, что часто есть экономическое условие остановки:

  1. Когда вы делаете ML для клиента, а не для развлечения, вы должны взглянуть на сумму денег, которую клиент готов потратить. Если он заплатит вашей фирме 5000 евро, а вы потратили месяц на поиск модели, вы потеряете деньги. Звучит банально, но я видел, что «должно быть решение !!!!» - размышление, которое привело к огромному перерасходу средств. Так что остановитесь, когда деньги уйдут, и сообщите о проблеме своему клиенту.
  2. Если вы проделали какую-то работу, вы часто чувствуете, что возможно с текущим набором данных. Попробуйте применить это к сумме денег, которую вы можете заработать с помощью модели. Если сумма тривиальна или отрицательна (например, из-за времени, необходимого для сбора данных, разработки решения и т. Д.), Вам следует остановиться.

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

В то время как я сосредоточился на экономике при работе с коммерческим продуктом, это правило также применимо к научным кругам или к веселым проектам - хотя деньги в таких обстоятельствах не столь важны, время все еще остается редким товаром. Например в академических кругах вы должны перестать работать, когда вы не дадите ощутимых результатов, и у вас есть другие, более перспективные проекты, которые вы могли бы реализовать. Но не отбрасывайте этот проект - пожалуйста, опубликуйте также нулевые результаты или результаты «Вам нужно больше / другие данные», они тоже важны!

Кристиан Зауэр
источник
1
+1 определенно отличный момент! Я думаю, что все ответы на этот вопрос могут показаться «очевидными», но я нигде не видел все эти «очевидные» вещи, собранные для справки.
Тим
3
Между прочим, это правило остановки применимо и к некоммерческим случаям: например, если вы проводите какое-то исследование, наши результаты также имеют некоторую абстрактную ценность, и продолжение «безнадежного» анализа также целесообразно только до тех пор, пока ценность вашего анализа не превысит вашу мог бы сделать вместо этого. Таким образом, в действительности это решение теоретического аргумента может быть сделано более общим.
Тим
2
Я думаю, что «никто не использовал бы ist и был консервирован», вероятно, следует изменить на «никто бы не использовал его, и он был консервирован» - это было вашим намерением?
Серебряная рыбка
2
Благодарю. Я бы сказал, что дело не только во времени, но и в том, что вы можете потратить время по-другому. Вместо этого вы могли бы работать над исследовательским проектом по другому жизненно необходимому лекарству, которое бы сэкономило ваше время, но и общественность получит пользу от результатов и т. Д.
Тим
2
@ChristianSauer По моему опыту инженера проблема несоответствия между датчиками (датчиками) и полезной цели, вероятно, предшествовала изобретению транзистора.
Роберт де Грааф
9

Есть другой способ. Спроси себя -

  1. Кто или что делает наилучшие возможные прогнозы по этой конкретной переменной? "
  2. Мой алгоритм машинного обучения дает лучшие или худшие результаты, чем лучшие прогнозы?

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

Ваша способность улучшаться зависит (в целом) от двух вещей:

  1. Используете ли вы те же данные, что и лучший эксперт в этой конкретной задаче?
  2. Используете ли вы данные так же эффективно, как лучший эксперт в этой конкретной задаче?

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

Я согласен со Стефаном, что обычно лучший способ сделать это - обратиться к эксперту по предметной области.

Гэвин Поттер
источник
1
На самом деле ваш ответ противоречит ответу @StephanKolassa, где он ссылается на литературу, предполагающую, что прогнозные критерии довольно вводят в заблуждение.
Тим
1
@Tim: полное раскрытие - эта ссылка шла на статью о тестах, которую я написал сам. Тем не менее, я придерживаюсь своих выводов: все контрольные показатели точности прогнозирования спроса, которые я видел, очень вероятно сравнивают яблоки с апельсинами. Поэтому я немного скептически отношусь к внешним оценкам. Кроме того, я думаю, что этот ответ несколько напрашивается на вопрос. Как только ваш алгоритм ML улучшит «самый известный», как вы узнаете, сможете ли вы улучшить его дальше, или мы достигли Плато Безнадежности?
Стефан Коласса
1
Мой последний случай использования был довольно другим. Я пытался предсказать, кто рискует убить себя из их сообщений в Интернете. Существуют различные психометрические тесты, которые можно использовать для определения степени тяжести депрессии, такие как PHQ9. Поскольку это широко используемый медицинский тест, существует значительная работа по его валидности и надежности, например, «Достоверность кратковременной меры тяжести депрессии PHQ-9». Я обнаружил, что надежность и другие показатели в этой статье являются хорошей отправной точкой в ​​отношении вероятных результатов, которые можно достичь с помощью машинного обучения.
Гэвин Поттер
1
Вы правы, конечно, насчет улучшения «самых известных», нет способа сказать, стоит ли продолжать поиск лучшей модели. Но по моему опыту, это довольно редко, это происходит в реальной ситуации. Похоже, что большая часть работы, которую я выполняю, связана с попытками применять экспертные оценки в масштабе с использованием машинного обучения, а не с целью повышения квалификации лучшего эксперта в этой области.
Гэвин Поттер