примерка полинома в данных, matlab - PullRequest
2 голосов
/ 23 января 2012

У меня очень простая проблема. У меня

x = [1 2 3 4 5];
y = [5.5 43.1 128 290.7 498.4];
p = polyfit(x,y,3);
x2 = 1:.1:5;
y2 = polyval(p,x2);
plot(x,y,'o',x2,y2)
grid on

Как я могу доказать, что с polyfit (x, y, 4) я получаю несущественные параметры, поэтому я должен взять только polyfit (x, y, 3); С уважением,

Ответы [ 2 ]

2 голосов
/ 23 января 2012

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

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

Это не математически строгий метод, но может дать хорошую эмпирическую причину.

1 голос
/ 23 января 2012

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

В общем случае полином n -го порядка определяется параметрами n+1. Таким образом, вам нужно как минимум n+1 точек данных, чтобы соответствовать вашим данным. Чтобы найти коэффициенты (то есть параметры), мы просто выражаем, что f(x) = y для всех x и y, которые являются n+1 уравнениями в n+1 неизвестных и до тех пор, пока все x -значения являются уникальными, это можно решить точно. Когда у вас больше точек данных (уравнений), чем неизвестных, можно рассчитать наилучшее решение (чаще всего наименьших квадратов). Это решение, которое минимизирует расстояния между моделью и точками данных.

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

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

Использование модели четвертого порядка с этим небольшим доказательством явно нелепо (поскольку вы тогда предполагаете, что ваши измерения были безупречны), одинаково глупо выбирать модель третьего порядка «только потому, что модель четвертого порядка не подойдет» ,

Я рассчитал функции стоимости наименьших квадратов для ваших данных (это функция стоимости, которая минимизируется на polyfit), т.е.

for n = 1:4
    p    = polyfit(x,y,n);
    ym   = polyval(p,x);
    e    = y - ym;
    V(n) = sum(e.^2)/2
end

Функции стоимости V(n) показывают, насколько плохо работают ваши модели для каждого заказа n, чем выше стоимость, тем хуже ваша подгонка. Я рассчитал V= [6269, 28.885, 28.621, 6.083e-25]. Из этого ясно видно, что линейная модель (первого порядка) имеет очень плохое соответствие, а модель четвертого порядка имеет (почти) идеальное соответствие (стоимость практически равна нулю). Но и модели второго и третьего порядка имеют очень похожие характеристики. Введение третьего параметра снижает стоимость только на 0.264.

Вы можете понять, насколько все ваши точки данных в совокупности отклоняются от модели: d = sqrt(2*V). Для второго порядка это 7.601, в то время как для третьего порядка это только 7.566, поэтому вы видите разницу менее чем 0.04 (в единицах вашей оси y), чтобы судить о ваших моделях.

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...