Логистическая регрессия: вычисления на Python

Логистическая регрессия: вычисления на PythonЧто такое регрессия?

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

Например, имеется множество измерений \(x_i, y_i\), \(i=\overline\), которые можно представить точками на плоскости; поставим задачу отыскания такой прямой, которая «наилучшим» образом характеризует зависимость между \(x_i\) и \(y_i\). Требование «наилучшего» в этом случае нуждается в разъяснении. Крайне маловероятно, что все точки будут одновременно принадлежать прямой, поэтому, как правило, понятие «наилучшей», предполагает отыскание такой прямой, сумма квадратов расстояний от которой до точек минимальна. Такая прямая проходит максимально близко ко всем точкам одновременно. Это по сути регрессионная задача, итогом решения которой являются параметры прямой (\(y=k\cdot x + b\)). Таким образом, большой набор значений сводится к модели данных, представляемой в виде двух параметров прямой — углового коэффициента (\(k\)) и параметра (\(b\)) вертикального ее смещения.

Многообразие регрессионных моделей определяется выбором ее аналитического вида (линейная, нелинейная), набором параметров, критериями построения оценок параметров по исходным данным. Рассмотренный пример нахождения прямой — двухпараметрическая задача линейной регрессии (в случае минимизации квадратов расстояний до точек соответствует методу главных компонент).

Независимо от выбираемой аналитической модели и критерия для оценки ее параметров, назначение регрессии — сведение исходного набора данных к малому числу количественных характеристик и построение им (данным) наилучшего аналитического приближения.

Рассмотрим один из видов регрессии — логистическую регрессию, целью которой является построение модели распределения вероятностей для случая, когда зависимая переменная (моделируемое значение, или (аналог переменной \(y\) в линейной модели) может принимать два значения 0 или 1.

Логистическая регрессия

Формулировка задачи.

Имеется набор данных \( (y_i, x_i)\), где \(x_i \in R^n\) — т. е. являются векторами в n-мерном числовом пространстве; \(y_i = \) — допустимые значения зависимой переменной. Необходимо построить модель распределения значений \(y\) в многомерном пространстве \(R^n\); иными словами, исходя из имеющихся данных, необходимо восстановить распределение вероятностей \(P_y(x)\).

Если \(P_(x) \) известна, то \( P_(x) = 1-P_(x) \), так как \(y\) может принимать только значения 0 или 1.

Дальнейшие шаги в восстановлении распределения состоят в выборе модели для \(P_(x) \). Кривая логистического роста $$f(x) = \frac<1+e^>$$ вполне удовлетворяет требованиям, накладываемым на функции распределения вероятностей; нужно однако несколько изменить ее вид, добавив для гибкости параметры, которые будут оцениваться по набору данных. Вполне естественным шагом «добавления» в модель параметров, является использование их линейной комбинации.

Таким образом, приходим к задаче логистической регрессии: необходимо оценить параметры (\(w_1,\ldots, w_n, c\)) для модели $$ P_(x) = f(x) = \frac<1+e^>, P_(x) = 1-f(x),$$ где \(w^T+c = w_1\cdot x_1 + w_2\cdot x_2 + \ldots + w_n\cdot x_n +c\), исходя из наблюдаемых данных.

Для оценки параметров в таких задачах обычно используют метод максимального правдоподобия: его суть заключается в том, что параметры \(w_i, c\) должны выбираться таким образом, что в случае подстановки наблюдаемых данных в модель, обеспечивалась максимальная вероятность осуществления события, которое соответствует наблюдаемым данным. В случае равноправных измерений, такое условие должно одновременно распространяться на все наблюдаемые данные. Требование одновременной оптимизации \(P_(x_i, w, c)\) для всего набора данных нередко записывают как задачу оптимизации произведения значений модельных вероятностей. Произведение с одной стороны отражает «одновременность» оптимальности для всех данных, а с другой может быть очень удобно в случае моделей, содержащих экспоненту: в этом случае путем логарифмирования (операции не влияющей на результат) оптимизация произведения может быть сведена к оптимизации суммы логарифмов составляющих, а взятие логарифмов от экспонент приводит к существенному упрощению задачи.

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

Классификация с помощью логистической регрессии: пример на Python и Scikit-Learn

Рассмотрим пример построения оценок вероятностей принадлежности точек факторного пространства двум классам для специально сгенерированных данных.

После того, как обучающая выборка сгенерирована (100 точек класса 0, и 100 точек класса 1), воспользуемся функцией выполнения логистической регрессии из пакета Scikit-Learn .

И, наконец, финальный этап — отрисовка результатов классификации и оценок вероятностей принадлежности классам.

Классификация каждой из точек двумерного факторного пространства позволила визуализировать области принятия решений (отнесения объекта к первому, либо второму классу).

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

Соответствующие оценки вероятностей (для удобства — логарифмы таких оценок) даны на рисунках ниже. Данные оценки согласуются с полученными результатами классификации (например, вероятность встретить класс 2 возрастает в «правом нижнем углу» фрагмента факторного пространства).

логическая регрессия

классификация логистических систем

гомперца кривая

сфто

логистическая система

This entry was posted in Как работает логистическая регрессия and tagged , . Bookmark the <a href="https://svh-orenburg.ru/logisticheskaya-regressiya-vychisleniya-na-python/" title="Permalink to Логистическая регрессия: вычисления на Python" rel="bookmark">permalink</a>.

Comments are closed.