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

14

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

Идея: контролируемые алгоритмы обучения не предполагают базовых структур / распределений данных. В конце дня они выводят точечные оценки. Я надеюсь как-то количественно оценить неопределенность оценок. Теперь процесс построения модели ML по своей природе является случайным (например, в выборке для перекрестной проверки для настройки гиперпараметра и в подвыборке в стохастическом GBM), поэтому конвейер моделирования даст мне разные выходные данные для одних и тех же предикторов с каждым другим начальным числом. Моя (наивная) идея состоит в том, чтобы запускать этот процесс снова и снова, чтобы придумать распределение прогноза, и я могу, надеюсь, сделать заявления о неопределенности прогнозов.

Если это имеет значение, наборы данных, с которыми я работаю, обычно очень малы (~ 200 строк).

Имеет ли это смысл?

Чтобы уточнить, я на самом деле не запускаю данные в традиционном смысле (то есть я не перевыбор данных). Один и тот же набор данных используется в каждой итерации, я просто использую случайность в xval и стохастической GBM.

kevinykuo
источник
2
Если вы действительно хотите интервал прогнозирования (а не доверительный интервал), вам необходимо учитывать изменения в наблюдениях относительно модели, а не только изменения в
предсказаниях
@Glen_b получит ли доверительные интервалы подход, изложенный в ОП, или усиленную версию? Я начинаю думать, что интервал прогнозирования невозможен без указания базового распределения данных, поэтому мне может понадобиться перефразировать вопрос в следующий раз.
kevinykuo
Вы можете запустить интервалы прогнозирования ... просто не делая то, что вы описываете в Q.
Glen_b -Reinstate Monica
@Glen_b не могли бы вы описать, как это сделать в ответе?
kevinykuo
1
Я не мог дать достаточный ответ здесь. Но смотрите Davison & Hinkley (1997) в главах о множественной регрессии и GLM, которые дают представление о том, что может понадобиться. Например, в случае множественной регрессии остатки пересчитываются для получения начальной загрузки прогнозной неопределенности (отклонения в прогнозах из-за неопределенности параметров) и снова пересчитываются, чтобы иметь дело с изменением процесса. С подходящей схемой вы, возможно, также сможете справиться с неопределенностью спецификации модели на этом первом шаге, но вы не можете пропустить 2-й шаг для изменчивости процесса
Glen_b -Reinstate Monica

Ответы:

5

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

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

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

В моем ответе на этот пост есть грубый R-код о поиске интервала прогнозирования GBM.

Надеюсь это поможет!

ErikL
источник
2

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

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

Алексей Зайцев
источник
1

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

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

Для оценки распределения ошибок вы можете использовать старый добрый перекрестный контроль.

user31264
источник
0

Я думаю об этой проблеме сейчас. Вот мои выводы:

(1) Дельта-метод
(2) Повторная выборка начальной загрузки
(3) Байесовский метод
(4) Оценка средней дисперсии (MVE)

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

Вот несколько ссылок:

Подходы машинного обучения для оценки интервала прогнозирования для выходных данных модели, Дурга Л. Шреста, Дмитрий П. Соломатин, 2006 г.
Сравнение некоторых оценок ошибок для моделей нейронных сетей, Роберт Тибширани, 1995 г.
Комплексный обзор интервалов прогнозирования на основе нейронных сетей и новых Авансы, Аббас Хосрави, Даг Крейтон, 2011

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

демонстрация
источник
1
Не могли бы вы объяснить, как этот пост посвящен первоначальному вопросу?
whuber
@Kevinykuo спрашивает, работает ли его способ «начальной загрузки». Я указываю несколько ссылок на некоторые методы, используемые в PI для нейронной сети.
Демо