![]() |
Линейная регрессия является одним из известнейших методов регрессии, достаточно хорошо работающим в ряде простых задач. И, несмотря на наличие более совершенных методов, линейная регрессия нашла свою нишу. К достоинствам линейной регрессии можно отнести простоту алгоритма и высокое быстродействие. Недостаток только один, и он очевиден - неприспособленность к решению существенно нелинейных задач.
Содержание
1 Линейная регрессия в ALGLIB |
Работа с линейными моделями в ALGLIB осуществляется в два этапа:
Алгоритм линейной регрессии, входящий в пакет ALGLIB, основан на использовании сингулярного разложения. Однако в алгоритме есть несколько улучшений по сравнению с классическим способом решения данной задачи:
Следует отметить две особенности быстрого вычисления кросс-валидационной оценки. Во-первых, "быстрая" формула применима только к невырожденным задачам – если задача вырождена, её размерность должна быть понижена при помощи метода главных компонент. При необходимости это делается автоматически, но примерно вдвое замедляет алгоритм. Во-вторых, существуют более утонченные типы вырожденности – с точки зрения решения системы линейных уравнений задача невырождена, но формула Шермана-Моррисона оказывается неприменима к части векторов обучающего множества (для некоторых с виду обычных векторов она приводит к делению на ноль). Теоретически в обучающем множестве может быть до M+1 таких "дефектных" элементов (из N имеющихся), хотя чаще всего нет ни одного. Эти «дефектные» векторы не учитываются при расчете кросс-валидационной оценки ошибки, что несколько искажает результат алгоритма, но не является багом (на случай, если кто-то решит проверить правильность работы быстрой кросс-валидации и случайно наткнется на один из таких векторов).
| C++ | linreg subpackage | |
| C# | linreg subpackage |
This article is intended for personal use only.
Исходный код на C#
Исходный код на C++
Исходный код на C++, использующий библиотеки MPFR/GMP.
Исходный код GMP доступен на сайте gmplib.org. Исходный код MPFR доступен на сайте www.mpfr.org.
Исходный код на Free Pascal.
Исходный код на Delphi.
Исходный код на VB.NET.
Исходный код на VBA.
Исходный код на Python (CPython и IronPython).
|
ALGLIB® - numerical analysis library, 1999-2012. |