Сравнение алгоритмов классификации для кредитного скоринга (отчет)
Материал из MachineLearning.
(→Список литературы) |
(→Описание системы) |
||
(1 промежуточная версия не показана) | |||
Строка 279: | Строка 279: | ||
== Описание системы == | == Описание системы == | ||
- | * Описание системы: [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/ | + | * Описание системы: [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/Skipor2009Compare/Docs/Systemdocs.doc]. |
- | * Файлы системы находятся в папке [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/ | + | * Файлы системы находятся в папке [https://mlalgorithms.svn.sourceforge.net/svnroot/mlalgorithms/Skipor2009Compare]. |
== Отчет о вычислительных экспериментах == | == Отчет о вычислительных экспериментах == | ||
Строка 414: | Строка 414: | ||
{{ЗаданиеВыполнено|Константин Скипор|В.В. Стрижов|15 декабря 2009|SkiporKostya|Strijov}} | {{ЗаданиеВыполнено|Константин Скипор|В.В. Стрижов|15 декабря 2009|SkiporKostya|Strijov}} | ||
+ | [[Категория:Практика и вычислительные эксперименты]] | ||
__NOTOC__ | __NOTOC__ |
Текущая версия
Введение в проект
Задача кредитного скоринга возникает в банках и в других кредитных организациях при принятии решений о выдаче кредитов. Задача заключается в том, чтобы на основе некоторой информации о заемщике, в данном случае, заполняемая им анкета в банке, обоснованно принять решение — стоит ли ему выдавать кредит, и если да, то на каких условиях.
Описание проекта
Используемые в данном проекте реальные данные «German Credit Data», являются удобным инструментом тестирования различных алгоритмов классификации и их модификаций, а также сравнения их со стандартными алгоритмами.
Цель проекта
Разработка и сравнение алгоритмов классификации для кредитного скоринга.
Обоснование проекта
По полученным результатам можно сделать вывод о том, насколько лучше или хуже разрабатываемый алгоритм классифицирует данные, по сравнению со стандартными алгоритмами, а также насколько целесообразно его использовать.
Описание данных
Данные взяты из репозитория UCI: Statlog (German Credit Data) Data Set . В выборке представлено 1000 объектов. Объектами являются анкеты людей, желавших получить кредит в банке. Изначально анкеты содержали 20 пунктов, таких как состояние банковсого счета заемщика, информация о его кредитной истории, цель займа, величина займа, возраст заемщика, время с момента трудоустройства на текущее место работы и другие. Но так как некоторые из них не были числовыми, а многие алгоритмы (в том числе рассматриваемый в данной статье) работают только с числовыми признаками, то из 20 разнородных признаков было составлено 24 числовых. Классы — «хорошим — 0» или «плохим — 1» заемщиком оказался человек, получивший кредит. По условию задачи, распознать «плохого» заемщика как «хорошего» в 5 раз хуже, чем «хорошего» как «плохого».
Критерии качества
Внутренним критерием качества служит среднеквадратичная ошибка или критерий максимума логарифма правдоподобия. В данном случае критерии эквивалентны. Внешними критериями являются взвешенная сумма ошибок классификации
для решающего дерева, а также средняя ошибка на контрольных данных для алгоритма отбора признаков. Критерием качества работы алгоритма служит скользящий контроль 10-fold Cross-Validation.
Требования к проекту
Необходимо сравнить рассматриваемые и стандартные алгоритмы классификации по параметрам: средняя стоимость ошибок при обучении, средняя стоимость ошибок на контроле. По данным требуется сделать выводы о работе алгоритмов и условиях в которых лучше применять каждый из них.
Используемые методы
В качестве алгоритма классификации используется бинарное решающее дерево с разделяющими гиперплоскостями в вершинах. Гиперплоскости настраиваются с помощью логистической регрессии, без отбора признаков, либо с помощью LALR (Least Angle Logistic Regression), с отбором признаков.
Постановка задачи
Дана полная выборка , состоящая из множества объектов
и множества классов
. Задана обучающая выборка
, где
,
. В данном случае количество объектов
и количество признаков
. Задана также функция потерь
в виде матрицы
| 0 | 1 |
| 5 | 0 |
Требуется построить алгоритм классификации , который доставляет минимум функционалу качества
Описание алгоритмов
Базовые предположения
При построении решающего дерева использовалось предположение о том, что независимые переменные, признаки, имеют множественную корреляцию. Предлагается использовать логистическую регрессионную модель для отыскания разделяющей гиперплоскости.
Математическое описание
Основные понятия
Деревом называется конечный связный граф с множеством вершин , не содержащий циклов и имеющий выделенную вершину
, в которую не входит ни одно ребро. Эта вершина называется корнем дерева. Вершина, не имеющая выходящих ребер, называется терминальной или листом. Обозначим за
множество всех терминальных вершин дерева. Остальные вершины называются внутренними. Дерево называется бинарным, если из любой его внутренней вершины выходит ровно два ребра. Выходящие ребра связывают каждую внутреннюю вершину
с левой дочерней вершиной
и с правой дочерней вершиной
. Каждой внутренней вершине
можно поставить в соответствие некоторый предикат
, а каждой терминальной вершине
можно приписать метку класса
.
Классификация объекта бинарным решающим деревом
При классификации объект проходит по дереву путь от корня до некоторого листа, согласно следующему алгоритму
-
,
- пока вершина
внутренняя
- eсли
то
-
; (переход вправо)
-
- иначе
-
; (переход влево)
-
- вернуть
.
Объект доходит до вершины
тогда и только тогда, когда выполняется конъюнкция
, составленная из всех предикатов, приписанных внутренним вершинам дерева на пути от корня
до вершины
. Множество объектов
, выделяемых терминальными конъюнкциями
, попарно не пересекаются, а их объединение совпадает со всем пространством
.
Отсюда следует, что алгоритм классификации , реализуемый бинарным решающим деревом, можно записать в виде простого голосования конъюнкций:
причем одно и только одно слагаемое во всех этих суммах равно единице.
Построение решающего дерева
В качетсве основного алгоритма использовался рекурсивный алгоритм синтеза бинарного решающего дерева ID3. Работа алгоритма заключается в последовательном дроблении выборки на две части с помощью разделяющей гиперплоскости до тех пор, пока в каждой части не окажутся объекты только одного класса.
Алгоритм построения решающего дерева
Вход:
-
— обучающая выборка;
Выход:
- возвращает корневую вершину дерева,
.
- ПРОЦЕДУРА
;
- eсли все объекты из
лежат в одном классе
то
- создать новый лист
;
-
;
- вернуть
;
- создать новый лист
- найти оптимальные параметры разделяющей гиперплоскости:
-
;
- положить
;
-
- разбить выборку на две части
по предикату
;
- eсли
= ∅ или
= ∅ то
- создать новый лист
;
-
— класс, в котором находится большинство объектов из
;
- создать новый лист
- иначе
- создать новую внутреннюю вершину
;
-
; (построить левое поддерево)
-
; (построить правое поддерево)
- создать новую внутреннюю вершину
- вернуть
Шаг 3 имеет следующую интерпретацию. Для каждой подвыборки принимается модель логистической регрессии, согласно которой, свободные переменные
и зависимая переменная
связаны соотношением
где — вектор весов признаков (направляющий вектор разделяющей гиперплоскости). При ветвлении дерева ищется такой вектор параметров
, который бы доставлял минимум функционалу среднеквадратичной ошибки
Оптимальный вектор параметров находится с помощью метода наименьших квадратов с итеративным пересчётом весов (IRLS), см. также логистическая регрессия (пример).
О сложности
Построенное таким образом дерево может иметь достаточно сложную структуру. В качестве критерия сложности естественно принять количество построенных гиперплоскостей. Чем их больше, тем сложнее структура дерева и возникает проблема переобучения. Для решения этой проблемы предлагается из построенного дерева удалить некоторые гиперплоскости, уменьшив при этом суммарную стоимость ошибок по всем объектам.
Формально, будем считать, что алгоритмы классификации с помощью деревьев различной сложности принадлежат различным алгоритмическим моделям. Обозначим — алгоритм классификации с помощью дерева
сложности
, т.е дерева, содержащего
гиперплоскостей. Некоторое фиксированное дерево
, сложности
, можно свести к дереву
,
, удалив необходимое количество гиперплоскостей. Обозначим
— множество всех алгоритмов классификации с помощью деревьев сложности
, полученных из дерева
.
Теперь рассмотрим некоторое бинарное решающее дерево с
гиперплоскостями, построенное согласно вышеуказанному алгоритму. В этом случае
. Удаление любой терминальой гиперплоскости из дерева, уменьшит сложность дерева не единицу. Таким образом, получим некоторое множество
, и т.д., удалив все, кроме одной, получим множество
. Задача состоит в том, чтобы выбрать из множества алгоритмов
алгоритм , доставляющий минимум функционалу качества
:
Обозначим функционал суммы ошибок
В данном случае
Минимизация функционала
производится с помощью следующего алгоритма.
Алгоритм выбора оптимального решающего дерева
Вход:
- корневая вершина дерева,
.(построенное дерево)
- полная выборка
(или тестовая выборка);
Выход:
- возвращает корневую вершину дерева,
.(оптимальное дерево, т.е без лишних ветвей)
- ПРОЦЕДУРА
;
- вычислить
и запомнить как параметр вершины;
- eсли
— лист то
- создать новый лист
, с теми же параметрами;
- вернуть
;
- создать новый лист
- разбить выборку на две части
по предикату
;
- eсли
= ∅ или
= ∅ то
- создать новый лист
;
-
— присвоить метку класса, которую имеет вершина
;
- создать новый лист
- иначе
- создать новую внутреннюю вершину
;
-
; (построить левое поддерево)
-
; (построить правое поддерево)
- eсли
то
- вершину
сделать листом, с параметрами вершины
;
- вершину
- иначе
- создать новую внутреннюю вершину
- вернуть
Алгоритм оставляет именно те листья, которые дают наименьшую суммарную ошибку при классификации всей выборки. Можно также на вход подавать только тестовую выборку, тогда алгоритм будет минимизировать суммарную ошибку только на тестовых объектах, тем самым улучшая качество классификации тестовых объектов.
Варианты или модификации
Для того чтобы отсеивать неинформативные признаки, которые ухудшают качество классификации, предлагается использовать алгоритм отбора признаков LALR, вместо логистической регрессии. LALR основан на тех же предположения, что и логистическая регрессия, поэтому его использование в нашей ситуации вполне обосновано.
Описание LALR
Предполагается, что столбцы матрицы объекты-признаки (в матрицу дополнительно включен константный признак) линейно независимы и являются свободными переменными, а зависимая переменная
. Принята модель логистической регрессии, согласно которой
где — вектор весов признаков. Требуется найти для каждого шага LALR вектор весов
доставляющий минимум среднеквадратичной ошибки
Обозначим множество индексов . Для некоторого подмножества
, назовем его активным множеством, определим матрицу активных признаков
где . Определим также матрицы разностей и сумм для некоторого
,
Далее, обозначим
здесь «» означает две разные матрицы, соответствующие «+» и «-».
Теперь полностью опишем алгоритм. Начальное приближение положим . Пусть
текущее приближение функции регрессии. Вектор текущих корреляций имеет вид
Положим
Новое приближение для оценки получаем при добавлении некоторой линейной комбинации выбранных активных признаков
где
«» означает, что минимум берется только из положительных значений. В случае когда
пусто, что соответствует первой итерации,
находится из условия максимума абсолютной корреляции
Таким образом, алгоритм определяет оптимальный признак , обновляет вектор весов
и добавляет новый активный индекс
. В итоге, алгоритм сделает
шагов. На последнем шаге, когда
, веса настраиваются стандартным итерационным МНК с перевзвешиванием элементов (IRLS), как и в логистической регрессии.
Вышеприведенные формулы имеют следующую интерпретацию. На каждом шаге при добавлении нового признака решается задача минимизации среднеквадраничной ошибки, что в нашем случае, эквивалентно максимизации приращения логарифма правдоподобия
решение которой можно выразить в виде .
Применение LALR
Результатом работы алгоритма LALR является последовательность весов признаков . На каждом шаге добавлялся один признак, тем самым увеличивалось на единицу число настраиваемых параметров . Таким образом, получаем последовательность моделей с различным числом параметров. В качестве внешнего критерия выбора модели можно использовать информационный критерий Акаике (AIC)
где — число параметров модели, в данном случае, число активных признаков, а
— максимум логарифма правдоподобия. Лучшая модель соответствует минимальному значению критерия Акаике.
Но в данной работе, в качестве внешнего критерия функционал средней ошибки на контрольных данных. Выбирается та модель, у которой средняя ошибка минимальна.
Анализ работы LALR на модельных данных
Одним из наиболее простых методов отбора признаков является итеративный алгоритм Forward Stagewise. На каждом шаге алгоритм выбирает признак , имеющий наибольшую корреляцию с текущим вектором остатков
и с достаточно малым по модулю шагом
смещает текущее приближение
в направлении выбранного вектора
,
Чем меньше абсолютная величина шага , тем точнее оценка параметров, но вместе с тем возрастает трудоемкость.
Для сравнения двух алгоритмов мы сгенерировали объектов с 10 независимыми, нормально распределенными признаками
и вектором ответов
, где
. На рисунке приведены результаты работы алгоритмов LALR и Forward Stagewise.
На первых двух графиках показана зависимость оценок весов от суммы их абсолютных значений
. Каждая ветвь обозначена номером, который соответствует выбранному признаку. Признак с номером 1 является константным. Видно, что последовательности выбираемых признаков совпадают. На нижних графиках приведена зависимость
, абсолютной текущей корреляциии признаков с вектором остатков, от шага
. Номера кривых соответствуют номерам признаков. Из графиков видно, что с ростом
максимум абсолютного значения корреляции монотонно убывает.
Описание системы
Отчет о вычислительных экспериментах
Визуальный анализ работы алгоритма
Модельные данные
Рассмотрим задачу «XOR», которая представляет собой задачу классификации объектов с двумя признаками из 4-х кластеров, образующих линейно неразделимую выборку. В пределах каждого из кластеров объекты имеют нормальное распределение. Количество объектов каждого класса составляет 200 — обучающая выборка, 100 — контрольная.
![](/wiki/images/thumb/9/92/LogTree.png/1000px-LogTree.png)
На графике представлены результаны работы бинарного решающего дерева с логистической регрессией. По осям графика отложены координаты признаков. Точки — объекты, цвет точек обозначает принадлежность к тому или иному классу, цвет кружков вокруг точек — результат работы алгоритма. Прямые — суть разделяющие гиперплоскости; над каждой прямой указан номер, показывающий глубину дерева, и буква (R — правая дочерняя вершина, L — левая дочерняя вершина), указывающая направление ветвления дерева. Черным цветом показано оптимальное решающее дерево (отобранное с помощью TreeChoice), а дополнительные зеленые ветви показывают изначальное дерево (построенное с помощью LearnTree). В углу графика показано процентное соотношение обучающих и тестовых объектов, а также доля ошибок при классификации. Использование LALR в данном случае дает практически те же результаты, т.к всего 2 признака.
Анализ качества работы алгоритма
Оценка качества проводилась с помощью 10-кратного скользящего контроля, при котором вся выборка разбивалась на непересекающихся блоков примерно равной длины
:
Каждый блок по очереди становился контрольной подвыборкой, при этом обучение производилось по остальным
блокам. Критерий определяется как средняя ошибка на контрольной подвыборке:
Функционал скользящего контроля характеризует метод обучения . Оптимальный алгоритм классификации соответствует минимуму функционала по блокам
Результаты работы алгоритмом представлены в таблице
Алгоритм | стоимость ошибок при обучении (СV=<Q>) | стоимость ошибок на контроле (CV=<Q>) | средняя стоимость ошибок при обучении, Q-опт. | средняя стоимость ошибок на контроле, Q-опт. | количество ошибок классификации при обучении. | количество ошибок классификации на контроле. |
---|---|---|---|---|---|---|
LogTree | 0.030 | 0.804 | 0.043 | 0.610 | 4.3% | 29% |
LogTree, LALR | 0.013 | 0.274 | 0.028 | 0.170 | 2.3% | 17% |
Для сравнения приведем результаты работы разных алгоритмов на данных German с использованием 10-fold cross validation:
Название алгоритма | Средняя стоимость ошибкок при обучении | Средняя стоимость ошибкок на контроле |
---|---|---|
Discrim | 0.509 | 0.535 |
Quadisc | 0.431 | 0.619 |
Logdisc | 0.499 | 0.538 |
SMART | 0.389 | 0.601 |
ALLOC80 | 0.597 | 0.584 |
k-NN | 0.000 | 0.694 |
k-NN,k=17, eucl,std | - | 0.411 |
CASTLE | 0.582 | 0.583 |
CART | 0.581 | 0.613 |
IndCART | 0.069 | 0.761 |
NewID | 0.000 | 0.925 |
AC2 | 0.000 | 0.878 |
Baytree | 0.126 | 0.778 |
NaiveBay | 0.600 | 0.703 |
CN2 | 0.000 | 0.856 |
C4.5 | 0.640 | 0.985 |
ITrule | * | 0.879 |
Cal5 | 0.600 | 0.603 |
Kohonen | 0.689 | 1.160 |
DIPOL92 | 0.574 | 0.599 |
Backprop | 0.446 | 0.772 |
RBF | 0.848 | 0.971 |
LVQ | 0.229 | 0.963 |
LogTree | 0.043 | 0.610 |
LogTree, LALR | 0.028 | 0.170 |
Последние две строки таблицы - результат работы представленных алгоритмов. Данные для построения таблицы взяты с http://www.is.umk.pl/projects/datasets-stat.html. Для наглядности представлен график зависимости средней стоимости ошибкок на контроле от средней стоимости ошибкок при обучении. Точками обозначены алгоритмы.
![](/wiki/images/thumb/0/07/German.png/1000px-German.png)
Из таблиц и графика видно, что качество классификации алгоритмов очень хорошеее. Причем отбор признаков, производившийся при каждом ветвлении дерева, дал очень серьезное улучшение классификации, по сравнению с LogTree.
Смотри также
- Регрессионный анализ
- Скользящий контроль
- логистическая регрессия (пример)
- Отчет о выполнении исследовательского проекта (практика, В.В. Стрижов)
Список литературы
- Efron, B.; Hastie, T.; Johnstone, I. & Tibshirani, R. Least angle regression. — 2004.
- Hastie, T.; Taylor, J.; Tibshirani, R. & Walther, G. Forward Stagewise Regression and the Monotone Lasso. — 2006.
- Madigan, D. & Ridgeway., G. Discussion of least angle regression.. — 2004.
- Jerome Friedman, T. H. & Tibshirani, R. Additive Logistic Regression: A Statistical View of Boosting. — 2000.
![]() | Данная статья была создана в рамках учебного задания.
См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе. |