уравнение наименьших квадратов для вертикальной линии

Учитывая следующие 2d точки:

213 106.8

214 189

214 293.4

213 324

223 414

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

Спасибо


person user257543    schedule 23.01.2010    source источник
comment
нет, это не домашняя работа, я делаю программу распознавания лиц, и это ее небольшой аспект. Спасибо   -  person user257543    schedule 25.01.2010


Ответы (3)


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

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

Уравнение для горизонтальной линии просто y = b.

Ошибка в каждой точке (xi, yi) равна (yi - b).

Сумма квадратов ошибок равна SSE = sum( (yi - b)2). Мы хотим найти значение b, которое минимизирует SSE. Возьмите частную производную SSE по b и приравняйте ее к нулю:

сумма (-2 (yi - b)) = 0

упрощение,

сумма(yi) - Nb = 0

а также

б = сумма (yi)/N

Итак, в вашем случае усреднение координат X дает вам координату X вертикальной линии, которая лучше всего соответствует вашим точкам.

person Jim Lewis    schedule 23.01.2010

Наиболее общим решением было бы применить Всего наименьших квадратов

Это находит (a, b, d), чтобы минимизировать сумму квадратов перпендикулярных расстояний (ax+by=d (a^2+b^2=1): |ax + by – d|). Это может обрабатывать вертикальные линии, такие как 0x+1y=0.

Однако это немного сложнее реализовать, поэтому решение, предложенное @Jim Lewis, может быть хорошим и более практичным.

person Ben    schedule 31.05.2016
comment
Я не уверен, с каким языком работает OP, но это реализовано в scipy -ОДР. Для этого необходимо использовать двумерные входные данные (одно измерение – x, другое – y), а затем стоимость модели равна нулю. Итак, вы решаете, как вы говорите, минимизацию ax+by+d=0. - person BenB; 24.11.2017
comment
0x+1y=0 — это не вертикальная, а горизонтальная линия. - person N. Boumakis; 02.07.2020

Если вы хотите, чтобы линия наилучшего соответствия была вертикальной (т. е. x = константа), значения y не имеют значения. Просто возьмите квадратный корень из среднего значения квадратов значений x.

person Mick    schedule 23.01.2010
comment
а если они могут быть только положительными (как в случае с пикселями)? ^^ - person fanny; 14.06.2019