Разработка системы проверки данных клиентов банка на основе методов машинного обучения

Методы, которые используются для предотвращения мошенничества и, в частности, для работы с несбалансированными данными. Суть затрат на уровне класса и объекта. AdaBoost и его чувствительные к стоимости вариации. Изучение метода изотонической регрессии.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 16.09.2020
Размер файла 891,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ

«ВЫСШАЯ ШКОЛА ЭКОНОМИКИ»

Факультет Бизнеса и Менеджмента

Выпускная квалификационная работа

по направлению подготовки Бизнес-информатика образовательная программа «Бизнес-информатика»

Разработка системы проверки данных клиентов банка на основе методов машинного обучения

Садыкова Дарья Константиновна

Научный руководитель:

Профессор кафедры управления информационными системами и цифровой инфраструктурой

Зеленков Юрий Александрович

Содержание

Введение

Глава 1. Теоретические предпосылки

1.1 Обзор литературы

1.2 Обзор методов

1.3 Вывод

Глава 2. Используемые методы

2.1 Матрица ошибок и затрат

2.2 Определение затрат на уровне класса

2.3 Определение затрат на уровне объекта

2.4 Оценка алгоритмов, чувствительных к затратам

2.5 AdaBoost и его чувствительные к стоимости вариации

2.6 Калибровка

Глава 3. Практическая часть

3.1 Данные

3.2 Моделирование

Заключение

Литература

Введение

Главной темой этой работы является разработка системы проверки данных клиентов банка на основе методов машинного обучения. Под проверкой данных клиентов в контексте этой работы имеется в виду верификация как одна из типичных задач противодействия мошенничеству в банковской сфере.

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

Необходимо отметить, что существует большой спрос на различные решения проблемы мошенничества в онлайн-каналах. По данным отчетности Европейского центрального банка за 2018 год [1] 73% потерь в результате карточного мошенничества были результатом именно онлайн-операций. В денежном эквиваленте эти потери составляют более 1,3 миллиардов евро. Несмотря на то, что практически все банки мира используют машинное обучение в целях антифрода, процент потерь от мошенничества в онлайне растет с каждым годом [1].

Таким образом, можно сделать вывод о наличии расхождения между спросом на некие инструментальные решения и теми предложениями, которые может дать практика в настоящее время. Это говорит о необходимости изучения данной проблемы, то есть об её актуальности.

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

В этом и заключается главная проблема исследования: в классификации не используются чувствительные к затратам методы, которые являются более интересными как с точки зрения изучения, так и с точки зрения применения в бизнесе, так как затраты являются куда более интерпретируемым показателем по сравнению с, например, AUC-ROC метрикой. Из проблемы следует цель данной работы - разработка модели машинного обучения, которая решает задачу противодействия мошенничеству в онлайн-каналах с учетом стоимости различных решений.

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

Соответственно, к задачам данного исследования можно отнести следующие пути достижения цели:

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

Сбор данных для последующего анализа и моделирования на их основе.

Построение чувствительных к затратам моделей на основе данных о мошенничестве.

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

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

Задача сбора данных в этом исследовании решается с помощью использования вторичных данных, к которым относятся данные из заявок клиентов, данные из кредитных бюро, телекомов, государственных органов и крупных ИТ-компаний. Этот метод позволяет получить объем, необходимый для построения стабильной модели. Кроме того, он бесспорно служит цели избавиться от эмоциональной окраски, которая не является релевантной для использования в модели в контексте этой работы. Для анализа данных используются методы ранжирования и обработки количественных данных.

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

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

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

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

Глава 1. Теоретические предпосылки

1.1 Обзор литературы

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

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

Одна из наиболее фундаментальных работ Бхаттачарья и других ученых строится на сравнении моделей машинного обучения между собой, основываясь на том, насколько хорошо они работают для предотвращения мошенничества [4]. В работе исследуются наиболее распространенные методы: логистическая регрессия (LR), метод опорных векторов (SVM) и случайные леса (RF). Одним из главных выводов данной работы является тот факт, что, хотя результаты LR являются наиболее стабильными во времени, они же не являются наиболее успешными по F-мере, среднему геометрическому значению и некоторым другим метрикам. Необходимо упомянуть, что в этой работе опущено исследование различных моделей бустинга, что, несомненно, делает ее несколько неполной [5].

Майес и другие [6] обращаются к исследованию менее популярных методов верификации данных, а именно к сравнению искусственных нейронных сетей (ANN) и байесовских сетей доверия (BBN). Важнейшей гипотезой, доказательством которой является эта работа, является тот факт, что оба метода имеют хорошие результаты в выявлении мошеннических кейсов. Впоследствии, эта статья и несколько близких по теме обеспечили рост интереса к применению нейронных сетей в антифроде. Тем не менее, в этих методах есть некоторые сложности, которые заключаются, в первую очередь, в огромном объеме требуемых данных.

После обзора литературы, связанной с применением машинного обучения в антифроде, необходимо перейти непосредственно к обзору методов, чувствительных к затратам. Важно упомянуть работу Бансена и других [7], в которой он сравнивает байесовские методы с LR и RF. Более того, в этой работе исследуются методы работы с несбалансированными данными, которые достаточно часто сопровождают реальные банковские задачи, где требуется высокая чувствительность к затратам. Андерсэмплинг (undersampling, далее US), то есть удаление объектов мажорного класса, является одним из наиболее эффективных способов работы с несбалансированными данными [8].

В данной работе, чтобы учитывать затраты на различные типы ошибок классификации, исследователи используют концепцию оптимизации порога вероятности. Эта идея математически обоснована в главе 2.

Важнейшим выводом этой работы можно назвать тот факт, что большинство традиционных моделей успешно работают для задач антифрода только после US, что в некоторых случаях приводит снижению F-меры. Кроме того, необходимо упомянуть, что добавление чувствительности к затратам значительно улучшает качество RF не только с точки зрения экономии на затратах, но и F-меры. Однако те же меры по пороговой оптимизации ухудшают стабильность и качество результатов LR.

Тем не менее, выводы из работы Бансена не так очевидны. В работе Николау [14] поднимается важный вопрос о том, следует ли вообще использовать бустинги, чувствительные к стоимости, и, если да, то какие именно и при каких условиях. Автор рассматривает 15 вариаций алгоритма AdaBoost, тестируя их на 21 наборе данных с разными степенями несбалансированности. Опуская полный список алгоритмов, на основе этой работы можно выделить три наиболее перспективных вариации AdaBoost для работы с несбалансированными данными: AdaMEC, CGAda и AsymAda.

Тем не менее, автор отмечает, что для корректного использования этих алгоритмов необходимо калибровать итоговое предсказанное значение моделей. Калибровка - это процесс представления решений классификатора в виде распределения вероятностей по классам. В работе Николау используется калибровка Платта, механизм работы которой можно описать как обучение логистической регрессии на предсказаниях классификатора.

Несмотря на тот факт, что финальной рекомендацией автора является использование обычного AdaBoost с калибровкой предсказанных значений, в данной работе исследуются так же и чувствительные к затратам алгоритмы, чтобы сравнить их с традиционным AdaBoost.

Другой работой, исследующей перспективы US и других способов работы с несбалансированными данными, является статья Тинга [15]. Она является одной из фундаментальных работ, которая является метаанализом множества статей, посвященных различным метода - от методов подготовки данных до подходов к моделированию.

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

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

Более того, в этой же работе упоминается широкое использование методов трансформации данных, которые включают в себя US, что может говорить об их перспективах в контексте противодействия мошенничеству.

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

1.2 Обзор методов

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

В первую очередь, методы для предобработки данных включают в себя US и оверсемплинг (oversampling, далее OS), смысл которых состоит в удалении объектов мажорного класса или генерации объектов минорного класса соответственно. К OS следует относиться достаточно скептически в силу подразумевающихся сложных правил генерации объектов, поэтому в контексте данной работы рассматриваются только US методы. К ним можно отнести случайное удаление объектов мажорного класса, удаление по методу NearMiss, смысл которого заключается в применении метода ближайшего соседа и удалении нужного количества наиболее удаленных объектов мажорного класса для каждого объекта минорного класса. Кроме того, существует метод связей Томека, который удаляет «пограничные» или «шумовые» объекты мажорного класса, оставляя только такие пары противоположных классов, что между ними нет ни одного более близкого объекта ни к одному объекту из пары.

К моделям, которые используются для предотвращения мошенничества, можно отнести XGBoost и AdaBoost, которые отличаются только функцией потерь, а к чувствительным к затратам моделям можно отнести множество вариантов AdaBoost и некоторые другие модели.

Модификации AdaBoost:

AdaC1, AdaC2, AdaC3 - вариации, в которых стоимость ошибки добавляется в формулу обновления весов внутрь экспоненты, за экспоненту и как внутрь, так и снаружи экспоненты, а также меняется значение параметра соответствующим образом. Этот параметр отвечает за вес отдельного решающего дерева внутри общего классификатора.

AdaMEC - вариант, где к обычному AdaBoost добавляется правило о минимальной ожидаемой стоимости (MEC) [15], общий смысл которого заключается в оптимизации порогового значения таким образом, чтобы оно учитывало стоимость решения. Кроме того, эта вариация традиционно использует калибровку.

CGAda - вариант модели, в которой начальные веса определяются как затраты на объект, и таким же образом выражается функция корректировки стоимости [16].

CSAda - метод, в котором стоимости добавляются в формулу обновления весов , однако не меняют параметр [17].

Другие чувствительные к стоимости алгоритмы:

CSDT - чувствительные к затратам деревья решений (Cost-Sensitive Decision Trees Classifier), ансамбль чувствительных к стоимости деревьев решений, который учитывает стоимости на уровне объектов, а не классов [18].

CSRP - чувствительный к затратам классификатор по случайным подмножествам (Cost-Sensitive Random Patches Classifier), то есть на случайных объектах со случайно выбранными признаками [19].

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

1.3 Вывод

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

Кроме того, необходимо отметить большое количество методов для тестирования гипотезы данного использования, из которых в результате анализа были отобраны наиболее перспективные. К ним, основываясь на множестве статей, можно отнести различные чувствительные к затратам вариации AdaBoost, несколько других, тоже чувствительных к стоимости алгоритмов, как CSRP и CSDT, методы US и OS, а также некоторые теоретические предпосылки к использованию некоторых методов, а не других.

Так, например, именно из данной главы логически следует использование AdaBoost как базового алгоритма, а не, например, XGBoost, а также вывод о том, какие именно его вариации являются наиболее перспективными для экспериментов (AdaC1, AdaC2, AdaC3, CGAda, AdaCS).

Глава 2. Используемые методы

2.1 Матрица ошибок и затрат

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

Таблица 1. Матрица ошибок и затрат

Истинная «честная» операция

Истинное мошенничество

Предсказанная «честная» операция

C(0, 0), TN (True Negative)

C(0, 1), FN (False Negative)

Предсказанное мошенничество

C(1, 0), FP (False Positive)

C(1, 1), TP (True Positive)

Традиционно в машинном обучении рассматривают четыре сочетания решений, предсказанных моделью, и фактических данных. В контексте этой работы значение 1 рассматривается как позитивное наблюдение, то есть по данной операции было совершено мошенничество. Соответственно, значение 0 считается негативным наблюдением, то есть по этому клиенту мошенничества не было.

В таком случае ложноположительный (FP) результат обозначает, что операция мошеннической не была, однако модель предсказала по ней 1; ложноотрицательный (FN) результат, соответственно, обозначает ситуацию, в которой модель предсказала отсутствие фрода по мошеннической операции. В свою очередь истинно-положительные (TP) и истинно-отрицательные (TN) результаты говорят о том, что предсказания модели совпали с реальностью.

2.2 Определение затрат на уровне класса

Для каждого из значений FP, FN, TP и TN можно рассчитать стоимости, которые будут соответствовать затратам на каждое сочетание реальности и предсказания модели. В таблице 1 затраты обозначаются как C(i, j), где i - это прогнозируемый класс, а j - это фактический класс. Непосредственно значения стоимости могут быть рассчитаны на основании экспертной оценки, однако для наиболее близких к реальности результатов желательно использовать финансовые расчеты из внутренних данных, если существует такая возможность.

Однако даже в ситуации отсутствия реальной финансовой оценки, есть некоторые утверждения о соотношении этих затрат между собой. Совершенно очевидно, что C(0, 1), то есть стоимость FN классификации будет наибольшей из всей, так как будет одобрена мошенническая операция, последствия которой зависят от размера запрашиваемого и одобренного кредита. Так же очевидно, что C(0, 0), то есть стоимость истинно-отрицательного результата близка к нулю, если исключать из общих затрат цену эксплуатации самой модели. Именно такой подход применяется в данной работе.

В свою очередь, значения C(1, 0) и C(1, 1) могут варьироваться в зависимости от сопутствующих бизнес-процессов. К косвенным затратам может относиться обслуживание колл-центра, с помощью которого может происходить ручная проверка подозрительных кейсов, стоимость потерянного клиента в случае ошибочной классификации его как мошенника или даже репутационные потери организации, которые возможны при, например, массовой автоматической блокировке карт. О соотношениях и значениях в матрице затрат также будет упомянуто далее. В контексте чувствительного к стоимости обучения принято считать, что матрица затрат задана и известна [2].

Традиционно в машинном обучении используется подход минимизации риска, то есть классификация должна происходить так, чтобы уменьшить event rate - долю позитивных событий на одобренной популяции. Для обучения, чувствительного к стоимости, главным принципом является скорее минимизация ожидаемых затрат. Ожидаемую стоимость классификации объекта x в класс i - R(i, x) - можно выразить следующим образом:

,

где - это вероятность классификации объекта x в класс j.

Таким образом, модель определит объект x как объект положительного класса тогда и только тогда:

,

Это выражение можно представить как:

,

Из этого можно сделать вывод о том, что классификация объекта x как объекта положительного класса, то есть мошеннического, не зависит от добавления константы к столбцам матрицы затрат. Следовательно, вычитая C(0, 0) из первого столбца матрицы затрат и C(1, 1) из второго, мы получим новую матрицу затрат, эквивалентную исходной, однако значительно упрощенную (таб. 2).

Таблица 2. Упрощенная матрица затрат

Истинная «честная» операция

Истинное мошенничество

Предсказанная «честная» операция

0, TN (True Negative)

C(0, 1) - С(1, 1), FN (False Negative)

Предсказанное мошенничество

C(1, 0) - С(0, 0), FP (False Positive)

0, TP (True Positive)

Учитывая упрощенную матрицу затрат, условие для классификации объекта x как объекта положительного класса можно представить так:

,

Исходя из предпосылки о том, что P(0|x) = 1 - P(1|x) для бинарной классификации, можно определить некую пороговую вероятность , для которого при значении , можно было бы делать вывод о принадлежности объекта x к положительному классу. Такой порог можно выразить как:

,

Исходя из формулы (2), можно любой не чувствительный к затратам алгоритм изменить таким образом, чтобы он учитывал расходы. Если алгоритм способен предсказать вероятность принадлежности объекта x к позитивному классу, то следует сравнивать эту вероятность с . Тем не менее, некоторые классификаторы, такие как, например, решающие деревья, не способны достаточно точно оценить эту вероятность, так как они созданы для того, чтобы корректно предсказывать класс. В такой ситуации стоит использовать кросс-валидацию для подбора наилучшего порогового значения.

2.3 Определение затрат на уровне объекта

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

Таким образом, можно сделать вывод о том, что не чувствительные к стоимости алгоритмы не учитывают разницу между важностью разных классов, что становится особенно заметно в условиях несбалансированных данных. В силу того, что задача верификации данных с целью предотвращения мошенничества, несомненно, связана с дисбалансом классов - среди общего числа операций, данные о которых используются в этой работе, менее 5% составляют фродовые. Следовательно, для получения наиболее качественного результата по выявлению мошенничества необходимо использовать алгоритмы, чувствительные к стоимости.

2.4 Оценка алгоритмов, чувствительных к затратам

Традиционные способы оценки качества алгоритмов машинного обучения, такие как, к примеру, F-мера, не учитывают в расчете стоимость различных типов ошибок, что приводит к тому, что они неприменимы в оценке чувствительных к затратам алгоритмов. Исходя из того, что C(1, 0) ? C(0, 1), то есть стоимость ошибки FP не равна стоимости ошибки FN, можно сделать вывод о том, что два классификатора с одинаковым уровнем ошибок, но разным уровнем ложноположительных и ложноотрицательных решений, будут иметь разное влияние на затраты.

Следовательно, необходим другой способ оценки качества моделей. Бансен предлагает оценивать модель по общим затратам [13]. Пусть - это объект, который необходимо классифицировать, - это соответствующий ему класс (1 или 0), f - это классификатор, m - это общий размер выборки, а вектор является вектором стоимостей для соответствующих ошибок классификации объекта . В таком случае общие затраты можно определить следующим образом:

,

,

Очевидно, что общее значение затрат нельзя назвать легко интерпретируемым, поэтому используется его нормализованное значение:

,

Однако кроме непосредственных затрат, даже нормализованных, Бансен [13] предлагает учитывать сэкономленные средства. Для этого сравниваются затраты, полученные с использованием классификатора, с затратами, которые были бы без использования любого алгоритма.

,

Затраты без использования классификатора в данном случае рассчитываются как сумма затрат по всем мошенническим операциям, у каждой из которой в контексте данной работы своя стоимость.

Существует еще несколько метрик, которые подходят для оценки чувствительных к стоимости алгоритмов. В первую очередь используется площадь под ROC-кривой (далее AUC-ROC). Несмотря на существование его чувствительной к стоимости вариации [20], есть исследования, свидетельствующие о том, что можно использовать обычный AUC-ROC для тех же задач [21]. Это связано с тем, что AUC-ROC и его чувствительная к стоимости вариация похожим образом оценивают одни результаты одних и тех же моделей. Кроме того, для сравнения моделей между собой по предпочтительности использования в реальной жизни, используется метрика PSI (Population Stability Index) [25]. Этот показатель используется для оценки того, насколько изменилась популяция по сравнению с эталонной. В контексте моделирования обычно используют PSI, чтобы проверить, насколько стабильным является предсказанное значение итоговой модели или предсказание от внешних источников.

Несмотря на то, что PSI в широком смысле представляет просто сравнение двух распределений, которое можно провести с использованием критерия Хи-квадрат, исторически сложилась практика применения именно этого критерия.

На рисунке 1 изображено распределение популяции по двум параметрам на валидационной выборке. Голубым цветом обозначено известное нам настоящее распределение популяции (Actual %), а оранжевым то, которое предсказала скоринговая модель (Expected %).

Рисунок 1. Распределение популяции на валидационной выборке

При таких обозначениях можно выразить PSI следующим образом:

,

Как и в случае с метрикой IV (Information Value), которая показывает связь между целевой переменной и предикторами и используется для отбора предикторов, у PSI нет глубокого теоретического обоснования, однако эмпирически были выведены следующие пороговые значения:

если PSI < 0.1, то считается, что в популяции произошло незначительное изменение, то есть не требуется никаких дополнительных действий;

если PSI , то можно говорить о некоторых изменениях, при которых стоит уделить внимание другим метрикам скоркарты;

если PSI > 0,25, то произошли значительные изменения в популяции, и необходимо перекалибровывать или пересматривать модель;

С помощью PSI можно оценить не столько качество классификатора, сколько предпочтительность его использования в реальных условиях, так как обычно модель строят с расчетом на её использование в течение длительного времени.

2.5 AdaBoost и его чувствительные к стоимости вариации

В первую очередь, необходимо понимать, что AdaBoost представляет из себя ансамбль классификаторов, преимущество которого состоит в возможности улучшения способности модели к обобщению. Это связано с тем, что каждый отдельный классификатор является деревом глубиной 1, поэтому допускает некоторые ошибки, однако шаблон этой ошибки между разными классификаторами разный, что позволяет значительно уменьшить смещение итогового классификатора [9].

Другой проблемой, которую решает AdaBoost как ансамбль классификаторов, является уменьшение дисперсии [10]. Это связано с тем, что классификатор оказывается в меньшей степени чувствителен к данным, на которых обучен, так как каждый отдельный внутренний классификатор обучается на ограниченном наборе данных, уменьшая собственную дисперсию таким образом.

Важно также упомянуть, что AdaBoost подходит для обучения на несбалансированных данных в силу того, что этот алгоритм фокусируется не на извлечении общих паттернов, как стандартные алгоритмы (например, логистическая регрессия). Наоборот, AdaBoost наибольшую значимость уделяет редким объектам, присваивая наибольшие веса тем объектам, которые наиболее часто были неправильно классифицированы предыдущими классификаторами [11].

Тем не менее, необходимо понимать, что не всегда использование AdaBoost приводит к улучшению качества предсказания минорного класса, так как этот алгоритм фокусируется на accuracy, то есть может появиться смещение в сторону более частотного класса в силу того, что он вносит большую долю в accuracy [12].

Общими словами алгоритм AdaBoost можно описать следующей последовательностью, в которой - это объект, который необходимо классифицировать, - это соответствующий ему класс (1 или 0), m - это общий размер выборки, t - соответствующий шаг классификации.

Необходимо инициализировать . Затем последовательно повторяются следующие шаги:

Обучение классификатора , использую распределение .

Выбор коэффициента для обновления весов каждого классификатора, где

,

Обновление и нормализация весов:

,

где - это коэффициент нормализации.

После повторения этих шагов результат итогового классификатора:

,

Соответственно итоговая ошибка классификатора может быть определена как:

,

Имея общее представление о том, как работает AdaBoost, имеет смысл перейти к его вариациям, которые учитывают стоимость ошибки. Стратегия выбора весов AdaBoost подразумевает увеличение весов неправильно классифицированных объектов до тех пор, что разделяет объекты по результату классификации, но не по исходным классам: веса неправильно классифицированных объектов из разных классов увеличиваются на одинаковую долю.

Для того, чтобы повысить эффективность обучения при несбалансированности в данных, нужно изменить стратегию формирования весов так, чтобы алгоритм различал экземпляры разных классов. Один из способов это сделать заключается в том, чтобы с каждым объектом связать значение затрат, в прямой зависимости от которого будет находиться важность правильной классификации: чем выше затраты, тем важнее правильно определить класс объекта. Традиционно эти затраты обозначаются как и выводятся из матрицы затрат из параграфа 1.

Существует несколько основных способов добавить стоимости к AdaBoost, в таблице 3 ниже указаны те, которые используются в данной работе, а так же, как меняются формулы обновления и определяется .

Таблица 3. Чувствительные к стоимости вариации AdaBoost, используемые в работе

Метод

AdaBoost

AdaC1

AdaC2

AdaC3

CGAda

CSAda

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

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

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

2.6 Калибровка

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

Именно поэтому в данной работе используется два наиболее распространенных метода калибровки: калибровка Платта и калибровка методом изотонической регрессии [22].

Калибровка Платта работает следующим образом [23]. Пусть - это итоговое предсказание модели. Тогда, чтобы получить откалиброванные вероятности, необходимо совершить следующее преобразование:

,

параметры A и B подобраны на обучающей выборке с использованием метода максимального правдоподобия. Использование градиентного спуска позволяет определить такие A и B, что они являются решением следующего уравнения:

,

,

Для выделения такой обучающей выборки, чтобы значения A и B не оказались переобученными, часто используют отдельную выборку для калибровки или выборку, выделенную во время кросс-валидации. Сам Платт предлагает преобразовывать значения целевой переменной в вероятности следующим образом. Если во всей выборке объектов положительного класса и объектов негативного класса, то можно получить следующие вероятности и соответственно:

,

,

В данной работе используется метод, предложенный Платтом.

Помимо калибровки Платта, существует калибровка методом изотонической регрессии, которая решает проблему того, что не на всех алгоритмах сигмоидная трансформация показывает высокое качество [24].

Метод изотонической регрессии основывается на простой предпосылке о том, что целевую переменную можно выразить через предсказания модели следующим образом:

,

В этом выражении m - это изотоническая монотонно возрастающая функция. Имея обучающую выборку , которую можно выделить любым из способов, упомянутых в описании калибровки Платта, функцию m выражают как: мошенничество данный изотонический регрессия

,

С помощью PAV (Pool-Adjacent-Violators) алгоритма, который пошагово находит решения для этого уравнения, можно найти значения m и , подставив их в формулу (13), получить откалиброванные значения модели.

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

Так, например, именно вследствие этой главы становится очевидно, что гораздо более применимым к реальности методом оценки затрат является их оценка на уровне объекта. Точно так же можно выделить очевидную пользу использования метрики PSI как показателя стабильности, которая следует из этой главы, несмотря на тот факт, что большинство литературы по теме не учитывает эту метрику.

Глава 3. Практическая часть

3.1 Данные

Данные собраны на основании реальных операций в банке «Хоум Кредит», большая часть данных является конфиденциальной, следовательно, графики и числа в этой работе являются несколько изменёнными по сравнению с реальностью. Тем не менее, все изменения итоговых данных произведены таким образом, чтобы соотношения и выводы не противоречили реальности.

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

Так, на рисунке 2 изображены результаты моделей, построенных на флаг мошенничества и на флаг просрочки по кредиту. Fraud score означает предсказанные значения модели, построенной с флагом мошенничества в качестве целевой переменной, а def_3_30_score означает предсказания модели, для которой целевой переменной была просрочка по кредиту. Результаты моделей были взяты на подвыборке генеральной совокупности, что объясняет такое равномерное распределение со скоплением в районе значения (0,5; 0,5). Можно заметить, что распределения достаточно похожи, что и послужило основанием использовать флаг просрочки в качестве целевой переменной.

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

Рисунок 2. Результаты модели, построенной на флаг мошенничества и построенной на флаг просрочки

Сбор данных производился с помощью ПО PL/SQL Developer, данные собирались на даты с июня 2018 года по январь 2020 года. Такая глубина связана с несколькими причинами. В первую очередь, необходимо дождаться «вызревания» целевой переменной, так как чтобы определить просрочку платежа по кредиту на первые три месяца, должно пройти как минимум три месяца и дополнительно месяц, чтобы зафиксировать пропущенный платеж. Поэтому самой близкой датой ко времени написания этой работы является январь.

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

Исходная выборка состоит из чуть более чем 700 тысяч операций и имеет долю положительного класса менее 3%, однако после использования случайного US в ней осталось только около 180 тысяч операций, а доля положительного класса выросла до 6,6%. На изображениях 3 и 4 изображено распределение целевой переменной до и после US в координатах двух непрерывных правил с наибольшей предиктивной способностью (R_1 и R_6).

Рисунок 3. Распределение целевой переменной до применения US

На все данные было собрано 285 предикторов, которые относятся к кредитной истории, персональным данным клиента и его гео-активности. Например, одно из правил может звучать так: «Количество разных паспортов в заявках с одинаковым телефоном за последние 180 дней».

Правила могут быть флагами, которые принимают значение 1 или 0, могут быть натуральными числами, которые означают количество тех или иных фродовых признаков, а также могут принимать вид рациональных чисел от 0 до 1, которые откалиброваны на вероятность мошеннической операции.

Рисунок 4. Распределение целевой переменной после применение US

3.2 Моделирование

Непосредственно процесс моделирования заключается в построении множества моделей с использованием разных алгоритмов и функций затрат. В результате была получена таблица 4. В этой таблице под Current model имеется в виду модель, которая в данный момент работает в банке для решения задачи верификации, под AB имеется в виду AdaBoost и его вариации.

Таблица 4. Результаты сравнения моделей

Classifier

Savings train

Savings test

F1

AUC-ROC train

AUC-ROC test

Current model

0.148

0.1356

0.673

0.85543

0.83832

AB.CS

0.0763

0.0778

0.1915

0.62421

0.61599

AB.CS-Pla

0.2408

0.2405

0.1331

0.60321

0.59999

AB.CS-Iso

0.2458

0.2544

0.141

0.60251

0.59996

AB.CG

0.0813

0.0769

0.1881

0.61912

0.60986

AB.CG-Pla

0.2395

0.2421

0.1341

0.60098

0.60021

AB.CG-Iso

0.2481

0.2472

0.1395

0.60095

0.60023

AB.C3

0.0763

0.0778

0.1915

0.62956

0.62041

AB.C3-Pla

0.2346

0.2338

0.1299

0.60054

0.59926

AB.C3-Iso

0.2337

0.2375

0.1318

0.60054

0.59926

CSDT

0.1537

0.1068

0.2098

0.64791

0.64001

CSDT-Pla

0.2717

0.2476

0.1337

0.60086

0.59936

CSDT-Iso

0.2117

0.1726

0.1214

0.60095

0.59966

CSRP

0.1407

0.1002

0.2074

0.63957

0.6281

CSRP-Pla

0.327

0.2663

0.155

0.60109

0.604

CSRP-Iso

0.306

0.2289

0.1748

0.60119

0.60449

AB

0.0126

0.0117

0.029

0.30127

0.29013

AB-Pla

0.3163

0.3068

0.1682

0.60169

0.60171

AB-Iso

0.306

0.2289

0.1748

0.60119

0.60449

По таблице можно заметить, что лучше всего с точки зрения Savings работает не чувствительный к стоимости AdaBoost, результаты которого были откалиброваны по методу Платта (строка AB-Pla). При этом все метрики лучше смотреть по результатам на тестовой выборке, а на не обучающей.

Однако, несмотря на тот факт, что AB-Pla показывает лучшие результаты, необходимо отметить, что стабильность результатов этой модели выглядит неудовлетворительно, как можно видеть на рисунке 5. Особенно настораживает некоторый рост стабильности в последние два квартала выборки, которые являются наиболее близкими к настоящему времени. В первом квартале 2020 года это можно связать с начавшимся в конце марта карантином, связанным с коронавирусом, однако это не объясняет такого значительного сдвига в четвертом квартале 2019 года, что делает эту модель менее предпочтительной для использования в реальных банковских процессах.

Рисунок 5. PSI модели AdaBoost с калибровкой Платта по четвертям года

Все остальные модели в таблице 4 имеют похожее значение Savings на тестовой выборке, любое из которых выше, чем значение этой же метрики для модели, которая сейчас работает в текущем процессе (Current model). При этом достаточно логичным выглядит тот факт, что все построенные модели показывают более низкую метрику F1, так как она не является сбалансированной для различных типов ошибок.

Тем не менее, дискуссионным остается вопрос о причинах такого низкого показателя AUC-ROC - для всех моделей он близок к 0.6, что немногим лучше, чем значение 0.5 для случайного бинарного классификатора. В теоретической части приведены ссылки на источники, подтверждающие возможность использования AUC-ROC для оценки чувствительных к затратам алгоритмов, поэтому нельзя с точностью говорить о причинах низкого значения.

Кроме того, можно отметить важнейшую тенденцию, которая заключается в том, что для всех построенных моделей калибровка значительно улучшает качество метрики Savings, что подтверждает и теоретические выводы, описанные в главе 1, и эмпирические наблюдения, основанные на практике. Из этого можно с уверенностью делать вывод о необходимости использования калибровки при применении чувствительных к затратам моделей.

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

Наиболее стабильной моделью является Ada.C3-Iso, что делает её наиболее предпочитаемой для использования в течение длительного времени.

Рисунок 6. PSI модели Ada.C3, откалиброванная изотонической регрессией, по четвертям года

В силу схожести моделей AdaC1, AdaC2 и AdaC3 сравним их, а также AdaC3, откалиброванную изотонической регрессией, между собой по функции потерь для различных типов решений. На рисунке 7 изображено значение нескольких параметров для всех четырех моделей: уровня ошибок, потери на объектах негативного класса, потери на объектах позитивного класса и общие потери. Все это выражено в денежном эквиваленте. По оси Х изображена средняя стоимость ложноотрицательных решений классификатора, разбитая на децили.

Глядя на эти графики, можно сделать вывод о том, что калибровка значительно повышает уровень ошибок по сравнению с моделями без калибровки, особенно в децилях с наивысшей средней стоимостью ошибки. При этом очевидно, что это является следствием своеобразного компромисса: калибровка значительно уменьшает уровень потерь, связанных с мошенническими транзакциями, которые являются наиболее опасными для банка как с коммерческой, так и с репутационной стороны. Это подтверждается и тем, что в общих затратах откалиброванная модель оказывается моделью с наименьшими потерями, несмотря на гораздо больший уровень потерь по объектам негативного класса по откалиброванной модели.

Рисунок 7. Сравнение моделей AdaC1, AdaC2, AdaC3 и AdaC2 с калибровкой изотонической регрессией

Интересно, что для откалиброванной модели значение затрат на объекты негативного класса значительно растет по мере увеличения средней стоимости ложноотрицательного решения. Скорее всего, это объясняется тем же самым компромиссом, который позволяет калиброванной модели минимизировать общие затраты по обоим классам объектов.

В целом, можно говорить о том, что, хотя по уровню Savings лучшей моделью является нечувствительный к стоимости AdaBoost, откалиброванный по Платту, это можно считать скорее случайностью, на что указывает высокая нестабильность предсказанного значения. Из-за нестабильности какая-то четверть года внутри выборки могла оказаться более удачной для нечувствительной к стоимости модели. К высоким результатам Savings у модели CSRP нельзя отнестись без скепсиса, так как у модели существует значительный разрыв в качестве между обучающей и тестовой выборкой, что говорит о возможном переобучении.

Таким образом, выбирая между оставшимися моделями по уровню стабильности предсказаний, можно остановиться на модели AdaC3, откалиброванной с помощью изотонической регрессии, основываясь как на оптимальном варианте по Savings, по стабильности, так и на очевидной логике о том, за счет чего эта модель уменьшает общие затраты. Как видно на рисунке 7, это происходит за счет увеличения доли ошибок на объектах негативного класса, то есть на не мошеннических транзакциях.

Можно перейти к наиболее значимым правилам модели AdaC3-Iso, чтобы удостовериться в её валидности с точки зрения логики. Несмотря на то, что для объяснения бизнесу выгоды от использования этой модели требуется рассказать только про Savings, для полноценного анализа требуется проверить логику предикторов, которые в этой модели оказались наиболее высоко, согласно значениям SHAP. Значения SHAP показывают то, какой вклад каждый предиктор вносит в итоговое предсказание, а также то, как влияет предиктор на значение предсказания. Красный цвет на графике означает высокое значение предиктора, а синий, соответственно, низкое. Также, если значение SHAP на графике уходит влево, это значит, что этот предиктор увеличивает финальное значение предсказания, а если вправо - уменьшает.

Рисунок 8. Топ-5 предикторов по значениям SHAP

Правило R_1 представляет из себя метрику, в которой учитывается наличие отказанных заявок в прошлом, количество и скорость оформления заявок, а также качество кредитных организаций, которые посещал клиент. Правило R_2 является количеством уникальных кредитных организаций, которые посещал заемщик за последние N дней. Правило R_3 представляет из себя количество уникальных заявок клиента, в которых номер паспорта и серия совпадают, однако дата смены паспорта является «нестандартной» - то есть паспорт менялся не в 20 или 40 лет. Правило R_4 является количеством уникальных телефонов работодателя из заявок клиента за последние N дней. Правило R_5 является количеством таких заявок клиента, что в них совпадает адрес заемщика с текущим, но при этом они являются отказанными.

Правила R_2 и R_5 указывают скорее на негативную историю заемщика, чем на некую мошенническую активность, однако остальные три правила напрямую связаны с фродом. Например, правило R_1 указывает, в частности, на высокую частоту оформления в сомнительных организациях (микрофинансовые организации, микрокредитные организации), что является типичным поведением мошенников - завладев персональной информацией клиента, они единовременно оформляют множество кредитов в организациях, где вероятность выдачи высока. На рисунке 8 видно, что высокое значение правила R_1 увеличивает итоговое предсказание, то есть частое оформление кредитов увеличивает «вероятность» мошеннической заявки (в данной работе чем ближе предсказание к 1, тем скорее объект будет фродовым).

В свою очередь, правило R_3 может указывать на ситуации, когда паспорт человека был утерян или украден, и, за то время, что клиент его менял, мошенники получили доступ к персональным данным. Правило R_4 говорит не только о частой смене работы, что само по себе является нежелательным поведением, но и о возможной мошеннической деятельности, которая заключается в подделке документов о работе.

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

Главным выводом этой главы можно назвать тот факт, что наиболее предпочтительной моделью для использования в практических целях является AdaC3-Iso, что связано с её стабильностью, а также с повышенным значением метрики Savings по сравнению с моделью, работающей для этих целей в данный момент. Несмотря на тот факт, что не чувствительный к стоимости AdaBoost показывает лучшие результаты по понижению издержек, выраженных в Savings, его результаты можно назвать крайне нестабильными, что может говорить о том, что высокое качество не является ожидаемым постоянным результатом от модели, но в большей степени случайностью.

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


Подобные документы

  • Понятие доступности элементов класса и объекта. Обращение к полям на основе общедоступных свойств (инкапсуляция на основе свойств класса). Способы передачи данных в метод и возвращения результатов работы метода. Обращение к полям и свойствам класса.

    презентация [86,6 K], добавлен 09.12.2013

  • Понятие и структура банка данных. Основные структурные элементы базы данных. Система управления базами данных. Преимущества централизации управления данными. Понятие информационного объекта. Современные технологии, используемые в работе с данными.

    курсовая работа [1,8 M], добавлен 02.07.2011

  • Искусственные нейронные сети как одна из широко известных и используемых моделей машинного обучения. Знакомство с особенностями разработки системы распознавания изображений на основе аппарата искусственных нейронных сетей. Анализ типов машинного обучения.

    дипломная работа [1,8 M], добавлен 08.02.2017

  • Изучение работы баз данных - систематизированного набора записей и файлов, имеющих специальное предназначение. Характеристика СУБД, которые хранят и обрабатывают информацию на основе реляционной модели управления данными. Возможности Microsoft Access.

    реферат [699,7 K], добавлен 26.03.2010

  • Использование классификаторов машинного обучения для анализа данных. Создание модели, которая на основании параметров, влияющих на течение диабета, выявляет показатель возвращения больного в ухудшенное состояния после оказанного лечения (реадмиссию).

    дипломная работа [625,2 K], добавлен 10.06.2017

  • Создание системы предобработки данных; разработка системы классификации на базе методов и алгоритмов машинного обучения, их реализация в программной системе. Предобработка информации, инструкция пользователя, система классификации, машинный эксперимент.

    дипломная работа [917,1 K], добавлен 31.01.2015

  • Рассмотрение различных дистрибутивов операционной системы. Изучение протоколов обмена данными и форматов физического хранения данных. Разработка дистрибутива на основе операционной системы Linux для функционирования в составе сетевого хранилища StarNAS.

    курсовая работа [1,6 M], добавлен 05.11.2015

  • Изучение основных понятий баз данных: структура простейшей базы данных, компоненты базы данных Microsoft Access. Проектирование базы данных "Туристическое агентство" в СУБД Access 2010, в которой хранятся данные о клиентах, которые хотят поехать отдыхать.

    курсовая работа [3,3 M], добавлен 20.09.2013

  • Особенности технологий создания и работы с базами данных. Реализация структуры базы данных в MS Visio и MS SQL Server. Виды манипуляций над данными, создание сложных запросов. Суть и характеристика прав пользователей, разработка клиентских приложений.

    учебное пособие [2,2 M], добавлен 16.05.2013

  • Разработка базы данных на поставку товаров по заказам клиентов, которая должна содержать сведения про клиентов; код, наименование и цену товара; номер и дату заказа. Формирование отчета о заказанных товарах и стоимости заказа в разработанной СУБД.

    курсовая работа [1,3 M], добавлен 18.03.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.