Главная       Скачать       Коммерческая поддержка       FAQ       Forum       О нас       Английская версия

Линейная регрессия

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

Содержание

    1 Линейная регрессия в ALGLIB
    2 Особенности и улучшения алгоритма
    3 Manual entries

Линейная регрессия в ALGLIB

Работа с линейными моделями в ALGLIB осуществляется в два этапа:

Особенности и улучшения алгоритма

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

Следует отметить две особенности быстрого вычисления кросс-валидационной оценки. Во-первых, "быстрая" формула применима только к невырожденным задачам – если задача вырождена, её размерность должна быть понижена при помощи метода главных компонент. При необходимости это делается автоматически, но примерно вдвое замедляет алгоритм. Во-вторых, существуют более утонченные типы вырожденности – с точки зрения решения системы линейных уравнений задача невырождена, но формула Шермана-Моррисона оказывается неприменима к части векторов обучающего множества (для некоторых с виду обычных векторов она приводит к делению на ноль). Теоретически в обучающем множестве может быть до M+1 таких "дефектных" элементов (из N имеющихся), хотя чаще всего нет ни одного. Эти «дефектные» векторы не учитываются при расчете кросс-валидационной оценки ошибки, что несколько искажает результат алгоритма, но не является багом (на случай, если кто-то решит проверить правильность работы быстрой кросс-валидации и случайно наткнется на один из таких векторов).

Manual entries

C++ linreg subpackage   
C# linreg subpackage   

This article is intended for personal use only.

Скачать ALGLIB

C#

Исходный код на C#

Downloads page

 

C++

Исходный код на C++

Downloads page

 

C++, арифметика высокой точности

Исходный код на C++, использующий библиотеки MPFR/GMP.

Исходный код GMP доступен на сайте gmplib.org. Исходный код MPFR доступен на сайте www.mpfr.org.

Downloads page

 

FreePascal

Исходный код на Free Pascal.

Downloads page

 

Delphi

Исходный код на Delphi.

Downloads page

 

VB.NET

Исходный код на VB.NET.

Downloads page

 

VBA

Исходный код на VBA.

Downloads page

 

Python

Исходный код на Python (CPython и IronPython).

Downloads page

 

 

ALGLIB® - numerical analysis library, 1999-2017.
ALGLIB is registered trademark of the ALGLIB Project.