Группировка категорий и сегментация признаков в логистической регрессии (пример)

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
м
(Отмена правки № 16236 участника Nkzh (обсуждение))
Строка 1: Строка 1:
'''Группировка категорий и сегментация признаков''' — методы, позволяющие упростить и одновременно улучшить регрессионную модель. В частности, группировка категорий позволяет понять взаимосвязь значений признаков и использовать линейные модели для нелинейных зависимостей.
'''Группировка категорий и сегментация признаков''' — методы, позволяющие упростить и одновременно улучшить регрессионную модель. В частности, группировка категорий позволяет понять взаимосвязь значений признаков и использовать линейные модели для нелинейных зависимостей.
== Постановка задачи ==
== Постановка задачи ==
-
Дана задача кредитного скоринга. Регрессионная модель - [[Логистическая регрессия (пример) |логистическая регрессия]].Требуется найти множество активных признаков. Затем сегментировать линейные признаки, сгруппировать номинальные и ординарные. При этом надо применить как новые алгоритмы, так и классические. Сравнить оба подхода, вычислить статистическую значимость производных признаков.
+
Дана задача кредитного скоринга. Регрессионная модель - [[Логистическая регрессия (пример) |логистическая регрессия]]. Требуется найти множество активных признаков. Затем сегментировать линейные признаки, сгруппировать номинальные и ординарные. При этом надо применить как новые алгоритмы, так и классические. Сравнить оба подхода, вычислить статистическую значимость производных признаков.
== Описание данных ==
== Описание данных ==
-
Есть набор данных: <tex>\mathbf{x}\subseteq\mathbb{R}^{n},\ y\subseteq\mathbb{R}</tex>
+
Используются реальные данные (GERMAN_UIC) о выдаче или не выдаче банком кредитов. Всего приведены 24 признака для 1000 человек и информация о том, выдан ли впоследствии кредит. Формально данные можно представить следующим образом:
 +
 
 +
Набор данных: <tex>\mathbf{x}\in\mathbb{R}^{n},\ y\in\mathbb{R}</tex>
<tex>\mathbf{D} = \{(\mathbf{x}^{1},y^{1}),\ldots,(\mathbf{x}^{i},y^{i}),\ldots,(\mathbf{x}^{m},y^{m})\}</tex>
<tex>\mathbf{D} = \{(\mathbf{x}^{1},y^{1}),\ldots,(\mathbf{x}^{i},y^{i}),\ldots,(\mathbf{x}^{m},y^{m})\}</tex>
-
 
-
Матрица плана:
 
-
<tex>X = (\mathbf{x}_{1},\ldots,\mathbf{x}_{n})</tex>
 
Целевая переменная:
Целевая переменная:
Строка 14: Строка 13:
Модель:
Модель:
-
<tex>y_{i} = \sigma(\mathbf{w})</tex> где <tex>\sigma(\mathbf{w}) = \frac{1}{1 + \exp(-\mathbf{w}^{T}\mathbf{x}_{i})} </tex>
+
<tex>P(y^{i}|\mathbf{x}^i) = \sigma(-\langle\mathbf{w},\mathbf{x}^{i}\rangle)</tex> где <tex>\sigma(-\langle\mathbf{w},\mathbf{x}^{i}\rangle) = \frac{1}{1 + \exp(-\langle\mathbf{w},\mathbf{x}^{i}\rangle)} </tex>
Индексы:
Индексы:
Строка 20: Строка 19:
<tex>\{1,\ldots,n\} = \mathbf{F}</tex> - индексы признаков.
<tex>\{1,\ldots,n\} = \mathbf{F}</tex> - индексы признаков.
== Описание алгоритмов ==
== Описание алгоритмов ==
-
Сначала находится множество активных признаков. Для этого решается задача максимизации правдоподобия, или эквивалентно - минимзация его логарифма, взятого с противополжным знаком
+
Сначала находится множество активных признаков. Для этого решается задача максимизации правдоподобия, или эквивалентно - минимизация его логарифма, взятого с противополжным знаком
 +
 
 +
<tex>-\ln(\mathbf{y}|\mathbf{x}) = - \sum_{i\subseteq\mathbf{L}}(y^{i}\ln(\sigma(\langle\mathbf{w},\mathbf{x}^{i}\rangle)) + (1 - y^{i})\ln(1 - \langle\mathbf{w},\mathbf{x}^{i}\rangle)) = S_{\mathbf{L},\mathbf{A}}(\mathbf{w})</tex>
 +
 
 +
Здесь под строкой <tex>\mathbf{x}^{i}</tex> подразумевается строка из условия, но с удаленными координатами, номера которых не входят во множество индексов <tex>A</tex>. Вектор <tex>\mathbf{w}</tex> соответствующей длины. Множество активных признаков - <tex>\mathbf{A}\subseteq\mathbf{F} </tex>. Тогда задача нахождения множества активных признаков и соответствующего им вектора весов записывается в виде
 +
 
 +
<tex>\mathbf{w}_{\mathbf{A}} = \underset{\mathbf{w}}{\operatorname{argmin}}(S_{\mathbf{L},\mathbf{A}}(\mathbf{w}))</tex>
 +
 
 +
<tex>\mathbf{A} = \underset{\mathbf{A}^{*}\in2^{\mathbf{F}}}{\operatorname{argmin}}(S_{\mathbf{T},\mathbf{A}^{*}}(\mathbf{w}__{\mathbf{A}^{*}}))</tex>
 +
 
 +
Для решения задачи поиска множества активных признаков предлагается следующий подход. Все линейные признаки заведомо считаем активными. В нашем случае их всего 3 и впоследствии мы их будем сегментировать. Далее используем простой жадный алгоритм, удаляющий на каждом шаге признак, без которого значение правдоподбия наиболее оптимально. В нашем эксперименте будем считать, что удалить нам надо около половины всех признаков.
 +
{| class="wikitable"
 +
|-
 +
! Активные признаки
-
<tex>-\ln(P(\mathbf{y}|\mathbf{w})) = - \sum_{i\subseteq\mathbf{L}}(y^{i}\ln(\sigma(\mathbf{w}^{T}x_{i})) + (1 - y^{i})\ln(1 - \sigma(\mathbf{w}^{T}x_{i}))) = S(\mathbf{w})</tex>
+
|-
 +
|empty
-
Множество активных признаков - <tex>\mathbf{A}\subseteq\mathbf{F} </tex>. Тогда <tex>\mathbf{A} = argmin(S_{\mathbf{A}}(\mathbf{w}_{\mathbf{A}})) </tex>
+
|}
== Вычислительный эксперимент ==
== Вычислительный эксперимент ==
Строка 37: Строка 50:
# [[Машинное обучение (курс лекций, К.В.Воронцов)]]
# [[Машинное обучение (курс лекций, К.В.Воронцов)]]
# [[Логистическая регрессия (пример)]]
# [[Логистическая регрессия (пример)]]
-
# [[Метод касательных (Ньютона-Рафсона)]]
 
== Литература ==
== Литература ==

Версия 17:31, 26 октября 2010

Группировка категорий и сегментация признаков — методы, позволяющие упростить и одновременно улучшить регрессионную модель. В частности, группировка категорий позволяет понять взаимосвязь значений признаков и использовать линейные модели для нелинейных зависимостей.

Содержание

Постановка задачи

Дана задача кредитного скоринга. Регрессионная модель - логистическая регрессия. Требуется найти множество активных признаков. Затем сегментировать линейные признаки, сгруппировать номинальные и ординарные. При этом надо применить как новые алгоритмы, так и классические. Сравнить оба подхода, вычислить статистическую значимость производных признаков.

Описание данных

Используются реальные данные (GERMAN_UIC) о выдаче или не выдаче банком кредитов. Всего приведены 24 признака для 1000 человек и информация о том, выдан ли впоследствии кредит. Формально данные можно представить следующим образом:

Набор данных: \mathbf{x}\in\mathbb{R}^{n},\ y\in\mathbb{R}

\mathbf{D} = \{(\mathbf{x}^{1},y^{1}),\ldots,(\mathbf{x}^{i},y^{i}),\ldots,(\mathbf{x}^{m},y^{m})\}

Целевая переменная: \mathbf{y} = (y^{1},\ldots,y^{m})^{T}

Модель: P(y^{i}|\mathbf{x}^i) = \sigma(-\langle\mathbf{w},\mathbf{x}^{i}\rangle) где \sigma(-\langle\mathbf{w},\mathbf{x}^{i}\rangle) = \frac{1}{1 + \exp(-\langle\mathbf{w},\mathbf{x}^{i}\rangle)}

Индексы: \{1,\ldots,m\} = \mathbf{L}\cup\mathbf{T} - разбиение на обучающую и контрольную выборки. \{1,\ldots,n\} = \mathbf{F} - индексы признаков.

Описание алгоритмов

Сначала находится множество активных признаков. Для этого решается задача максимизации правдоподобия, или эквивалентно - минимизация его логарифма, взятого с противополжным знаком

-\ln(\mathbf{y}|\mathbf{x}) = - \sum_{i\subseteq\mathbf{L}}(y^{i}\ln(\sigma(\langle\mathbf{w},\mathbf{x}^{i}\rangle)) + (1 - y^{i})\ln(1 - \langle\mathbf{w},\mathbf{x}^{i}\rangle)) = S_{\mathbf{L},\mathbf{A}}(\mathbf{w})

Здесь под строкой \mathbf{x}^{i} подразумевается строка из условия, но с удаленными координатами, номера которых не входят во множество индексов A. Вектор \mathbf{w} соответствующей длины. Множество активных признаков - \mathbf{A}\subseteq\mathbf{F} . Тогда задача нахождения множества активных признаков и соответствующего им вектора весов записывается в виде

\mathbf{w}_{\mathbf{A}} = \underset{\mathbf{w}}{\operatorname{argmin}}(S_{\mathbf{L},\mathbf{A}}(\mathbf{w}))

\mathbf{A} = \underset{\mathbf{A}^{*}\in2^{\mathbf{F}}}{\operatorname{argmin}}(S_{\mathbf{T},\mathbf{A}^{*}}(\mathbf{w}__{\mathbf{A}^{*}}))

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

Активные признаки
empty

Вычислительный эксперимент

Выполнение алгоритма

Визуализация результатов

Исследование свойств алгоритма

Исходный код

Смотри также

  1. Машинное обучение (курс лекций, К.В.Воронцов)
  2. Логистическая регрессия (пример)

Литература

  • Siddiqi N. Credit Risk Scorecards: Developing and Implementing Intelligent Credit Scoring. John Wiley & Sons, Inc. 2006
  • Bishop C. Pattern Recognition And Machine Learning. Springer. 2006.
Данная статья является непроверенным учебным заданием.
Студент: Участник:Никита Животовский
Преподаватель: Участник:В.В. Стрижов
Срок: ?

До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}.

См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе.

Личные инструменты