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

Множественная логит-регрессия

Логит-регрессия - это обобщение линейной регрессии для случая, когда зависимая переменная является номинальной. В зависимости от того, сколько значений принимает зависимая переменная, выделяют "просто" логит-регрессию (два значения) или множественную логит-регрессию (произвольное число значений). В рамках данной статьи эти два типа моделей объединены под общим названием: логит-регрессия.

Логит-модель отображает вектор независимых переменных x в вектор вероятностей отнесения зависимой переменной к одному из классов y. Модель задается при помощи матрицы коэффициентов A и имеет вид:

Замечание #1
Можно отметить, что логит-модель является частным случаем обобщенных линейных моделей. С другой стороны, она является частным случаем нейронной сети - сетью с одним линейным слоем и SOFTMAX-нормализацией выходов.

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

Содержание

    1 Логит-регрессия в ALGLIB
    2 Алгоритм обучения
    3 Manual entries

Логит-регрессия в ALGLIB

Работа с логит-моделями в ALGLIB осуществляется в два этапа:

Алгоритм обучения

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

Изложенный выше алгоритм оптимизации обладает как достоинствами, так и недостатками. Главным недостатком является время работы, составляющее O(N·M 2·(c-1)^2) на одну итерацию с использованием гессиана, где N обозначает число точек в обучающем множестве, M - число независимых переменных, c - число классов (значений зависимой переменной). При этом достоинства алгоритма неоспоримы: небольшое число итераций (оказавшись в окрестностях минимума, алгоритм быстро сходится), отсутствие необходимости подбирать критерии останова, обеспечивающие компромисс между временем работы и точностью решения задачи (алгоритм всегда сходится к точному минимуму).

Manual entries

C++ logit subpackage   
C# logit 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.