Недавно я сделал небольшое приложение для браузера, которое вы можете использовать, чтобы поиграть с этими идеями: Scatterplot Smoothers (*).
Вот некоторые данные, которые я составил, с полиномиальной подгонкой низкой степени
0.60.850.85
Чтобы избавиться от смещения, мы можем увеличить степень кривой до трех, но проблема остается, кубическая кривая все еще слишком жесткая
Таким образом, мы продолжаем увеличивать степень, но теперь мы сталкиваемся с противоположной проблемой
Эта кривая отслеживает данные слишком близко и имеет тенденцию к вылету в направлениях, которые не очень хорошо подтверждаются общими закономерностями в данных. Это где регуляризация приходит. С той же кривой степени (десять) и некоторые хорошо выбранные регуляризации
Мы отлично подходим!
Стоит немного сосредоточиться на одном аспекте, хорошо выбранном выше. Когда вы подгоняете полиномы к данным, у вас есть дискретный набор вариантов для степени. Если кривая третьей степени не подходит, а кривая четвертой степени подходит, вам некуда идти в середине. Регуляризация решает эту проблему, так как она дает вам непрерывный диапазон параметров сложности для игры.
Как вы утверждаете, «Мы очень хорошо подходим!». Для меня все они выглядят одинаково, а именно неубедительно. Какой рациональный вы используете, чтобы решить, что хорошо и плохо подходит?
Честная оценка.
Предположение, которое я здесь делаю, состоит в том, что хорошо подогнанная модель не должна иметь заметного рисунка в остатках. Теперь я не планирую остатки, поэтому вам нужно немного поработать, просматривая фотографии, но вы должны использовать свое воображение.
На первом рисунке, с квадратичной кривой, подходящей к данным, я могу видеть следующую картину в остатках
- От 0,0 до 0,3 они примерно равномерно расположены выше и ниже кривой.
- От 0,3 до примерно 0,55 все точки данных находятся выше кривой.
- От 0,55 до 0,85 все точки данных находятся ниже кривой.
- Начиная с 0.85, они снова все выше кривой.
Я бы назвал это поведение локальным смещением , есть области, где кривая не очень хорошо приближается к условному среднему значению данных.
Сравните это с последним соответствием, с кубическим сплайном. Я не могу выделить области на глаз, где подгонка не выглядит точно так, как будто она проходит точно через центр масс точек данных. Это обычно (хотя и неточно) то, что я имею в виду под хорошей подгонкой.
2
- Их поведение на границах ваших данных может быть очень хаотичным даже при регуляризации.
- Они не являются местными в любом смысле. Изменение ваших данных в одном месте может существенно повлиять на подгонку в другом месте.
Вместо этого я, в описанной вами ситуации, рекомендую использовать естественные кубические сплайны вместе с регуляризацией, которые дают лучший компромисс между гибкостью и стабильностью. Вы можете убедиться сами, подгоняя некоторые сплайны в приложении.
(*) Я считаю, что это работает только в Chrome и Firefox из-за моего использования некоторых современных функций JavaScript (и общей лени, чтобы исправить это в Safari и т. Д.). Исходный код здесь , если вы заинтересованы.