Разработка алгоритмов ранговой регрессии для кредитного скоринга (отчет)
Материал из MachineLearning.
Введение в проект
Описание проекта
Цель проекта
Разработка алгоритмов ранговой регрессии для кредитного скоринга
Обоснование проекта
Кредитный скоринг позволит оценить вероятность разорения заёмщика или их группы. По тому, как будет классифицирован заёмщик, можно принимать решение о выдаче кредита.
Описание данных
Данные представляют собой матрицу объекты-признаки и столбец ответов . Признаки принимают действительные значения, ответы - натуральные из промежутка .
Требования к проекту
Необходимо сравнить алгоритмы ранговой регрессии по параметрам: количество ошибок, допускаемых на обучающей выборке, количество ошибок, допускаемых на контрольной выборке, время обучения алгоритма. По данным требуется сделать выводы о работе алгоритмах и условиях в которых лучше применять каждый из них.
Используемые методы
SVM, Логистическая регрессия
Описание алгоритмов
Полная стратегия обучения или Full Fixed Margin approach (FFM)
Предположим, что есть некоторая функция , причем ее значения известны только по сравнению с набором порогов . Объект x попадает в класс если . Таким образом задача сводится к оценке функции и порогов . Оцениваемую функцию положим линейной . Тогда классификатор будет иметь вид:
Mетод является обобщением svm на случай нескольких упорядоченных рангов. В этом подходе обучение рангового классификатора сводится к решению следующей оптимизационной задачи:
Вместо вышеуказанной оптимизационной задачи удобнее решать двойственную к ней:
Зная оптимальные значения множителей Лагранжа, оптимальные значения параметров оценивадтся по следующим формулам:
, если множество не пусто, то , иначе:
Логистическая ранговая регрессия
Предположим, что множество является вероятностным пространством. Вероятность получения данных прецедентов при условии их независимости: . Предположим, что плотность распределения векторов признаков объектов, при неизвестном ранге, равномерна, и не зависит от параметров гиперплоскостей, т.е.: , методом наибольшего правдоподобия:
Пусть так же . При таких предположениях решение задачи сводиться к решению оптимизационной задачи:
Описание системы
- Листинги алгоритмов: EXECUTEWine.m, FfmTraining.m, objfunc.m, RankEstimate.m, RankTraining.m, RankTrainingTheta.m
- IDEF0 диаграмма системы - rank_regression.bp1
- файл systemdocs
Пример работы программы:
%% This module shows how the algorithm works with real data (wine %% classification) sizeTrainSet = 100 sizeControlSet = 100 %% load training set and control set XTrain = load('Red.data'); XTrain = XTrain(1:sizeTrainSet, :); YTrain = XTrain(:, 12); YTrain = YTrain - min(YTrain) + 1; XTrain = XTrain(:, 1:11); hdim = max(YTrain) - 1; %% load control set XControl = load('Red.data'); XControl = XControl(sizeTrainSet + 1 : sizeTrainSet + sizeControlSet, :); YControl = XControl(:, 12); YControl = YControl - min(YControl) + 1; XControl = XControl(:, 1:11); %% learn algorithm. FFT method. C = 0.01; tic [ a1, h1 ] = FfmTraining(XTrain, YTrain, hdim, C); time1 = toc; %% test FFT on learning set RTrain1 = RankEstimate(a1, h1, XTrain); ErrorsTrain1 = sum(abs(RTrain1 - YTrain) >= 2); %% test FFT on control set RControl1 = RankEstimate(a1, h1, XControl); ErrorsControl1 = sum(abs(RControl1 - YControl) >= 2); %% learn algorithm. Logistic regression method. tic [ a2, h2 ] = RankTraining(XTrain, YTrain, hdim); time2 = toc %% test Logistic regression on learning set RTrain2 = RankEstimate(a2, h2, XTrain); ErrorsTrain2 = sum(abs(RTrain2 - YTrain) >= 2); %% test Logistic regression on control set RControl2 = RankEstimate(a2, h2, XControl); ErrorsControl2 = sum(abs(RControl2 - YControl) >= 2);
Отчет о вычислительных экспериментах
Сопоставительный анализ работы алгоритмов
Алгоритмы проверялись на задаче wine classification с репозитория UCI.
размер обучения - 500
размер контроля - 1000
количество классов - 6
метод | Ошибок на обучении не более чем в 1 ранг, % | Ошибок на обучении не более чем в 2 ранга, % | Ошибок на обучении не более чем в 3 ранга, % | Ошибок на обучении не более чем в 4 ранга, % | Ошибок на контроле не более чем в 1 ранг, % | Ошибок на контроле не более чем в 2 ранга, % | Ошибок на контроле не более чем в 3 ранга, % | Ошибок на контроле не более чем в 4 ранга, % | Время работы, сек |
---|---|---|---|---|---|---|---|---|---|
FFM | 89.8 | 49.0 | 12.6 | 1.8 | 87.7 | 47.9 | 11.6 | 1.9 | 7017 |
Логистическая регрессия | 89.4 | 51.2 | 3.2 | 0.2 | 85.9 | 44.7 | 4.4 | 0.8 | 0.71 |
Список литературы
- Воронцов К.В. Лекции по линейным алгоритмам классификации
- Куракин А.В. Байесовский принцип обучения в задаче восстановления ранговой модели данных
- Mottl V., Tatarchuk A., Kurakin A. Support vector machines for ranking learning: the full and the truncated fixed margin strategies. International Conference on Machine Learning and Cybernatics, Hong Kong, China, 2007
- Логистическая регрессия
Данная статья является непроверенным учебным заданием.
До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}. См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе. |