Как стать автором
Обновить

Комментарии 13

А можно попросить ещё и фильтр Калмана описать. Он из той же области...

Фильтр Калмана (ФК) он уже из области оптимального оценивания (оптимальный с точки зрения минимизации байесовского риска), а МНК это не вероятностный метод. Хотя МНК является частным случаем метода максимального правдоподобия, который уже относится к методам оптимального оценивания, который уже вероятностный. Но все же главный "прикол" МНК, это то, что для его использования годятся любые данные, в то время как для ФК нужно выполнение ряда условий, а для ММП необходимо сначала определить функцию плотности вероятности

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

Вот честно прочитал статью дважды. Как-то уж больно вязко написано. Понял практически только одно - конечная формула, позволяющая посчитать коэффициенты, такая же (что в общем неудивительно). А вот всё остальное так и не понял. Может, конечно, это у меня что-то не зашло, но для меня лично задача "в максимально доступной для читателя форме продемонстрировать последовательность математической мысли при решении задачи с применением МНК." так и осталась нерешённой. Наверное, для меня это не "доступная" форма, не математик я... попозже ещё разок перечитаю.

К слову. Помню, что результат сильно зависит от правильного выбора уравнения аппроксимации. Достаточно "перевернуть" зависимость и рассматривать её как зависимость времени от температуры - и результат аппроксимации будет немного иным. На показанных данных - почти таким же, ибо средняя ошибка отдельного измерения достаточно мала, но чем больше ошибки, тем больше разница.

Кстати, а откуда такая убеждённость, что время измеряется абсолютно точно, а?

Как-то уж больно вязко написано.

Причина такого (верного, на мой взгляд) ощущения имеет довольно общий характер. ТС, видимо, полагает, что "популярное" изложение - это когда много слов и промежуточных выкладок, даже если в них нет особой нужды. Если решается частная задача линейной регрессии - зачем предыдущие "умные" общие выражения, которые ни к чему не ведут? Очень смутило решение системы двух (!) линейных уравнений с двумя неизвестными при помощи вычисления обратной матрицы. Если сразу заменить суммы матожиданиями и сигмами, то эта система решается практически в уме методом домножений и вычитаний одного уравнения из другого. Я думаю, что всякий, кто использовал МНК, и понимал, что он делает, получал эти формулы на клочке бумаги в течение 10-ти минут. И не только для линейной зависимости. Это довольно забавное упражнение, имхо. Но не более того.

Если решается частная задача линейной регрессии - зачем предыдущие "умные" общие выражения, которые ни к чему не ведут?

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

Очень смутило решение системы двух (!) линейных уравнений с двумя неизвестными при помощи вычисления обратной матрицы

А если параметров будет 5, 7 или 10 Вы тоже будете решать систему уравнений в уме или воспользуетесь, например, приведенными здесь выражениями?

Если сразу заменить суммы матожиданиями и сигмами, то эта система решается практически в уме методом домножений и вычитаний одного уравнения из другого.

Подскажите, а на каком этапе вы предлагаете произвести подобные подстановки?

Я думаю, что всякий, кто использовал МНК, и понимал, что он делает, получал эти формулы на клочке бумаги в течение 10-ти минут.

Так статья написана как раз для тех кто не понимает, что такое МНК. А кому "всё понятно" никакого смысла читать подобные статьи нету. Мне так кажется.

Часть надписей осталась в картинках, а часть написана текстом. Ещё и подача какая-то максимально бюрократическая, как будто учебник для вузов прочитал.
Хотел понял для себя, как работает этот метод, потому что я им только пользовался на лабораторках по физике, там он был в виде готовой программы. По-прежнему не понял, что к чему. Вроде бы, тут какие-то системы дифференциальных уравнений.

В статье изложено применение МНК для построения линейной аппроксимации зависимости, заданной в виде таблицы значений аргумента и соответствующих им значений функции. Метод основан на минимизации среднеквадратичного отклонения табличных данных от аппроксимирующей их прямой. Поиск экстремума среднеквадратичного отклонения (при помощи приравнивания нулю производных по параметрам) приводит к системе двух линейных уравнений, решение которой позволяет найти два параметра, определяющие аппроксимирующую прямую — угловой коэффициент и свободный член
Интересно, удалось ли мне полностью передать основное содержание публикации, только значительно меньшим объёмом текста?

Спасибо вам, я вспомнил всё, что учил.

"Табличные данные" звучат гораздо понятнее, чем "истинные значения". "Гиперпараметр" - это вообще, нечто.

Вот так более понятно, спасибо.

и представляется непонятным нагромождением формул.

увы и ах

@Akina

Вот честно прочитал статью дважды. Как-то уж больно вязко написано. Понял практически только одно - конечная формула, позволяющая посчитать коэффициенты, такая же (что в общем неудивительно). А вот всё остальное так и не понял.

А можно как-то более детально описать те места, которые сложны для восприятия?

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

Безусловно, выбор вида уравнения является основной сложностью при использовании этого метода на практике. Фактически вид уравнения ­- это гиперпараметр модели. И его можно определять перебором возможных к использованию видов уравнений. Хотя есть возможности в какой-то мере упростить процедуру подбора вида уравнения. Так, например, в некоторых случаях при аппроксимации исходных данных полиноминальной функцией, применение регуляризации позволяет использовать полиномиальную функцию с избыточно большой степенью полинома. Что несколько снимает сложность точного подбора степени полинома. Но все эти приёмы несколько выходят за рамки данной статьи.

Достаточно "перевернуть" зависимость и рассматривать её как зависимость времени от температуры - и результат аппроксимации будет немного иным. На показанных данных - почти таким же, ибо средняя ошибка отдельного измерения достаточно мала, но чем больше ошибки, тем больше разница.

Верно, при анализе данных к самим этим данным можно подходить различно. И можно не только оси менять местами, но и использовать спрямляющие пространства и (или) кросс-валидацию в самых различных её проявлениях. Тут у аналитика данных широкий набор инструментов, которым надо пользоваться аккуратно и выбирать те инструменты, которые наилучшим образом соответствую условиям задачи.

Кстати, а откуда такая убеждённость, что время измеряется абсолютно точно, а?

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

Всем привет! Ай нид хелп.
Задача: найти как можно более точные координаты точки, если известны координаты других точек и примерные расстояния до них.

Объясню. Есть, скажем, 8-10 точек и известны их точные координаты. А где-то находится еще одна точка, координаты которой и надо найти, но расстояния от этой точки до остальных известны неточно. Примерно, с погрешностью 2-3%.

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

Ничего конкретного с формулами и объяснениями в интернете я не нашел. Возможно, есть другие способы решения такой задачи. Или объясните, пожалуйста, как это решить с наименьшими квадратами.
 Спасибо.
 Дмитрий.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории