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

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

(Различия между версиями)
Перейти к: навигация, поиск
м
Строка 19: Строка 19:
<tex>\{1,\ldots,n\} = \mathbf{F}</tex> - индексы признаков.
<tex>\{1,\ldots,n\} = \mathbf{F}</tex> - индексы признаков.
== Описание алгоритмов ==
== Описание алгоритмов ==
 +
=== Поиск активных признаков ===
Сначала находится множество активных признаков. Для этого решается задача максимизации правдоподобия, или эквивалентно - минимизация его логарифма, взятого с противополжным знаком
Сначала находится множество активных признаков. Для этого решается задача максимизации правдоподобия, или эквивалентно - минимизация его логарифма, взятого с противополжным знаком
Строка 29: Строка 30:
<tex>\mathbf{A} = \underset{\mathbf{A}^{*}\in2^{\mathbf{F}}}{\operatorname{argmin}}(S_{\mathbf{T},\mathbf{A}^{*}}(\mathbf{w}__{\mathbf{A}^{*}}))</tex>
<tex>\mathbf{A} = \underset{\mathbf{A}^{*}\in2^{\mathbf{F}}}{\operatorname{argmin}}(S_{\mathbf{T},\mathbf{A}^{*}}(\mathbf{w}__{\mathbf{A}^{*}}))</tex>
-
Для решения задачи поиска множества активных признаков предлагается следующий подход. Все линейные признаки заведомо считаются активными. В данном случае их всего 3, и впоследствии они будут сегментированы. Далее используется простой жадный алгоритм, удаляющий на каждом шаге признак, без которого значение правдоподобия наиболее оптимально. В данном эксперименте считается, что удалить надо около половины всех признаков.
+
Для решения задачи поиска множества активных признаков предлагается следующий подход. Все линейные признаки заведомо считаются активными. В данном случае их всего 3, и впоследствии они будут сегментированы. Далее используется простой жадный алгоритм, удаляющий на каждом шаге признак, без которого значение правдоподобия наиболее оптимально. В логистической регрессии добавляется постоянный признак, а вектор весов находится с помощью алгоритма [[Алгоритм Ньютона-Рафсона|Ньютона - Рафсона]]. В данном эксперименте считается, что удаленными должны быть около половины всех признаков.
-
 
+
=== Сегментация линейных признаков ===
 +
Пусть значения линейного признака <tex>\mathbf{x}_{i}</tex> характеризуются числами из отрезка <tex>[a_{i},b_{i}]</tex>. Вводится разбиение отрезка <tex>[a_{i},b_{i}]</tex>, на <tex>k</tex> отрезков одинаковой длины <tex>a_{i} = x_{1} < x_{2} < \ldots < x_{n_{k}} = b_{i}</tex>. Строится кусочно - линейная функция <tex>f(x) = a x+ b + c_1|x-x_1| + c_2|x-x_2| + \ldots +c_n|x-x_n|</tex>. Значения признака - значение функции в соответствующей точке отрезка <tex>[a_{i},b_{i}]</tex>. Коэффициенты <tex>f(x)</tex> подобираются так, чтобы <tex>f(x_{2m - 1}) = 0,\ f(x_{2m}) = 1</tex> где <tex>m\in\mathbb N</tex>. На каждом шаге алгоритма случайным образом изменяется значение <tex>x_{i}</tex>, но так, чтобы не изменить порядок чисел разбиения. Коэффициенты <tex>f(x)</tex> изменяются соответсвующим образом. Если для новой функции <tex>f(x)</tex> значение <tex>S_{\mathbf{L},\mathbf{A}}(\mathbf{w})</tex> уменьшается, то сохраняется изменение <tex>x_{i}</tex>. Алгоритм заканчивает работу по достижении первого минимума.
 +
=== Группировка категорий ===
 +
Пусть номинальный признак <tex>\mathbf{x}_{i}</tex> характеризуются числами из множества категорий <tex>\tex\{1,\ldots,c\}</tex>. Ему в соответствие ставится множество <tex>\Gamma</tex> такое, что <tex>1 \le |\Gamma| \le c</tex>. Требуется найти такую сюръективную функцию <tex>h_{\Gamma}:\{1,\ldots,c\}\to\Gamma</tex> и соответствующее ей множество <tex>\Gamma = \{1,\ldots,c^{*}\}</tex>, которая минимизирует функцию <tex>S_{\mathbf{T},\mathbf{A}</tex> при замене для <tex>\mathbf{x}_{i}</tex>: <tex>\tex\{1,\ldots,c\}</tex> на <tex>\tex\{h_{\Gamma}(1),\ldots,h_{\Gamma}(c)\}</tex>. В данном случае признаков и категорий достаточно мало, поэтому эффективен полный перебор.
== Вычислительный эксперимент ==
== Вычислительный эксперимент ==
Строка 52: Строка 56:
# [[Машинное обучение (курс лекций, К.В.Воронцов)]]
# [[Машинное обучение (курс лекций, К.В.Воронцов)]]
# [[Логистическая регрессия (пример)]]
# [[Логистическая регрессия (пример)]]
-
 
+
# [[Логистическая функция]]
 +
# [[Регрессионный анализ]]
 +
# [[Алгоритм Ньютона-Рафсона]]
 +
# [[Метод наименьших квадратов]]
== Литература ==
== Литература ==
* Siddiqi N. Credit Risk Scorecards: Developing and Implementing Intelligent Credit Scoring. John Wiley & Sons, Inc. 2006
* Siddiqi N. Credit Risk Scorecards: Developing and Implementing Intelligent Credit Scoring. John Wiley & Sons, Inc. 2006

Версия 12:09, 28 октября 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))^{y^{i}}(1 - \sigma(\langle\mathbf{w},\mathbf{x}^{i}\rangle))^{1 - y^{i}}\ где \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(P(\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 - \sigma(\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, и впоследствии они будут сегментированы. Далее используется простой жадный алгоритм, удаляющий на каждом шаге признак, без которого значение правдоподобия наиболее оптимально. В логистической регрессии добавляется постоянный признак, а вектор весов находится с помощью алгоритма Ньютона - Рафсона. В данном эксперименте считается, что удаленными должны быть около половины всех признаков.

Сегментация линейных признаков

Пусть значения линейного признака \mathbf{x}_{i} характеризуются числами из отрезка [a_{i},b_{i}]. Вводится разбиение отрезка [a_{i},b_{i}], на k отрезков одинаковой длины a_{i} = x_{1} < x_{2} < \ldots < x_{n_{k}} = b_{i}. Строится кусочно - линейная функция f(x) = a x+ b + c_1|x-x_1| + c_2|x-x_2| + \ldots +c_n|x-x_n|. Значения признака - значение функции в соответствующей точке отрезка [a_{i},b_{i}]. Коэффициенты f(x) подобираются так, чтобы f(x_{2m - 1}) = 0,\ f(x_{2m}) = 1 где m\in\mathbb N. На каждом шаге алгоритма случайным образом изменяется значение x_{i}, но так, чтобы не изменить порядок чисел разбиения. Коэффициенты f(x) изменяются соответсвующим образом. Если для новой функции f(x) значение S_{\mathbf{L},\mathbf{A}}(\mathbf{w}) уменьшается, то сохраняется изменение x_{i}. Алгоритм заканчивает работу по достижении первого минимума.

Группировка категорий

Пусть номинальный признак \mathbf{x}_{i} характеризуются числами из множества категорий \tex\{1,\ldots,c\}. Ему в соответствие ставится множество \Gamma такое, что 1 \le |\Gamma| \le c. Требуется найти такую сюръективную функцию h_{\Gamma}:\{1,\ldots,c\}\to\Gamma и соответствующее ей множество \Gamma = \{1,\ldots,c^{*}\}, которая минимизирует функцию S_{\mathbf{T},\mathbf{A} при замене для \mathbf{x}_{i}: \tex\{1,\ldots,c\} на \tex\{h_{\Gamma}(1),\ldots,h_{\Gamma}(c)\}. В данном случае признаков и категорий достаточно мало, поэтому эффективен полный перебор.

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

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

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

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

Активные признаки.
1,2,3,4,5,6,9,10,16,20

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

Исходный код

Смотри также

  1. Машинное обучение (курс лекций, К.В.Воронцов)
  2. Логистическая регрессия (пример)
  3. Логистическая функция
  4. Регрессионный анализ
  5. Алгоритм Ньютона-Рафсона
  6. Метод наименьших квадратов

Литература

  • 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 в учебном процессе.

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