LINUX.ORG.RU

интерполяция прямой неоднозначных данных

 , прямая


0

1

встала вдруг задачка :

- есть плоскость, на ней конечное множество точек. Координаты дискретны и заданы по сетке.

- надо провести прямую чтобы отклонение было минимально

но блин точек на одной отметке x бывает две. (их практически всегда две).

ткните в метод. А лучше конечно сразу в алгоритм. :-)

★★★★★

- надо провести прямую чтобы отклонение было минимально

Определи точнее. Определи норму (метрику), остальное элементарно.

Нет, так ищи «best fit line/curve».

tyakos ★★★
()
Ответ на: комментарий от dk-

Тебя правда это волнует в ночь с воскресенья на понедельник?)

:-) семья спит, а у меня уже понедельник :-)

MKuznetsov ★★★★★
() автор топика
Ответ на: комментарий от Stil

типа того :-) но для упомянутого «утра понедельника» много умных слов :-)

можно задачу перефразировать подругому: на вход через фиксированные промежутки поступают результаты измерений, надо «ойкнуть» если на 50-ти последних отсчётах они вдруг стали похожи на прямую...

как-бы проще это сделать, без лишних библиотек и не разогревая процессор.

MKuznetsov ★★★★★
() автор топика

Взвешенный МНК не подходит?

pS
()

надо провести прямую чтобы отклонение было минимально... ткните в метод

МНК (есть даже онлайн).

quickquest ★★★★★
()

Если даже толком не можешь сформулировать задачу, то пользуйся обычным МНК (метод наименьших квадратов).

Hasek ★★
()

Не пользуй МНК, если разброс есть. Ну или хотя бы делай итерациями, отбрасывая выбросы. Можно перед аппроксимацией скользящей медианой пройтись, если набор данных позволяет.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от MKuznetsov

они вдруг стали похожи на прямую

хорошо что не на прокурора. Что значит похожи на прямую? Когда сможешь дать этому определение - половина метода у тебя в кармане. Дальше подгоняешь простейший матаппарат под это дело (можешь просто СКО посчитать) и делаешь вывод

upcFrost ★★★★★
()

Алгоритм Брезенхэма не подходит?

andregin
()
Ответ на: комментарий от MKuznetsov

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

Pythagoras ★★
()
Ответ на: комментарий от upcFrost

Что значит похожи на прямую?

значит что можно найти такую прямую что 85% точек находятся не далее чем на Const по Y от этой прямой и эти расстояние достаточно близки к среднему. А 15% которые неуложились можно игнорировать - это всплески и шумы, которые есть почти всегда. Где-то наверное так :-).

MKuznetsov ★★★★★
() автор топика
Ответ на: комментарий от MKuznetsov

ну вот, перечитай свое сообщение еще раз и все поймешь. По сути ты сам только что ответил на свой вопрос.

Могу дать наводку - если ты говоришь об абсолютном отклонении, то это Least Absolute Deviation (LAD), не LSqE, это стандартная задача линейного программирования. Погугли пример матлаба для linsolve

upcFrost ★★★★★
()
Последнее исправление: upcFrost (всего исправлений: 2)
Ответ на: комментарий от MKuznetsov

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

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

upcFrost ★★★★★
()

Линейную регрессию программерам больше не преподают?

Shadow ★★★★★
()
Ответ на: комментарий от MKuznetsov

Тогда не регрессия. Тупо считаешь среднеквадратичное отклонение за последние 50 циклов, если какой-то порог превышен, аларм.

Shadow ★★★★★
()
Ответ на: комментарий от Shadow

Тупо считаешь среднеквадратичное отклонение за последние 50 циклов, если какой-то порог превышен

если считать «тупо» то еденичный импульс отправляет такой метод в далёкое плавание :( конечно такой способ был давно опробован, и он не подходит :-(

MKuznetsov ★★★★★
() автор топика
Ответ на: комментарий от MKuznetsov

С чего бы это? Один из 50 не может настолько унести.

Shadow ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.