Разработка модели обнаружения компрометации банковских транзакций
Разработка комплексных подходов обнаружения скомпрометированных банковских транзакций на основании ряда их признаков с помощью методов машинного обучения и других аналитических моделей. Анализ банковских операций, включая все их виды и особенности.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 07.12.2019 |
Размер файла | 4,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Таким образом, для формирования и обучения итоговой модели, основанной на методе опорных векторов, будут использоваться исходные данные с дискретизацией методом SMOTE на уровне 0,5%, а также без дополнительной классификации (то есть группировки) наблюдений. Показатели эффективности таковой модели представлены на диаграмме и в таблице ниже (Таблица 5, Рисунок 34).
Таблица 5. Показатели качества итоговой модели с использованием метода опорных векторов
Параметр |
Медиана |
|
Precision |
0.8692 |
|
Recall |
0.7673 |
|
F1-score |
0.814 |
|
AUC |
0.9702 |
|
HSS |
0.8171 |
|
TP |
75.2 (77%) |
|
TN |
56 851.55 |
|
FP |
11.45 |
|
FN |
22.8 |
Рисунок 34. Показатели качества итоговой модели с использованием метода опорных векторов
Рисунок 35. ROC-кривая модели с использованием метода опорных векторов
Как видно из полученных результатов, сформированная с помощью метода опорных векторов модель уступает прочим моделям, однако она показывает достаточно высокое качество предсказания, благодаря чему она также будет использоваться при построении итоговой модели обнаружения скомпрометированных банковских операций. Более того, по сравнению с методом K-ближайших соседей, который по подходу к анализу данных является достаточно близким к методу опорных векторов, классификатор SVC имеет намного более высокую скорость предсказания класса наблюдения, что делает его более применимым для решений класса Fraud Prevention, для которого скорость обработки данных является одним из ключевых показателей.
Построение модели с использованием наивного Байесовского классификатора
В рамках данной работы также было предложено использование вероятностных классификаторов, одним из которых является алгоритм наивной Байесовской классификации. Тем не менее, как было рассмотрено ранее, данный классификатор будет иметь достаточно низкую предсказательную способность при использовании его для количественных предикторов. В данном случае повторения значений является крайне низко вероятными, вследствие чего вероятностная модель не будет иметь достаточной эффективности.
Таким образом, использование данной методики без дополнительной предобработки исходных данных является нерациональной, вследствие чего модель с использованием наивного Байесовского классификатора будет построена сразу с использованием классифицированных показателей, на основании разбиения данных по перцентилям. Для доказательства данного факта было проведено построение модели для исходных и сгруппированных данных. Результаты данного исследования приведены на диаграмме ниже (Рисунок 36).
Рисунок 36. Показатели качества наивного Байесовского классификатора с использованием группировки данных
Как видно из полученных результатов, эффективность применения наивного Байесовского классификатора значительно возрастает при преобразовании исходных данных к виду номеров классов, к которым они принадлежат. Более того, без дополнительной дискретизации данных удается достичь значительного показателя качества предсказаний данной моделью (значение F-меры достигает 0,805).
Более того, так как данная модель является вероятностей, то она не зависит от количества экземпляров в миноритарном классе и, как следствие, дискретизация данных не требуется и не приведет к повышению качества настоящей модели. Тем не менее, еще один параметр, который необходимо определить для оптимизации модели - количество классов, на которые следует разбивать значения предикторов для получения наилучших результатов.
Для этого был проведен эксперимент по построению модели с различным количеством классов, на которые разбиваются данные. В рамках данного эксперимента использовались количества классов, аналогичные другим моделям, а также последовательный метод Монте-Карло с 20 итерациями для минимизации воздействия случайности деления выборки на обучающую и проверочную. Результаты данного эксперимента отражены на рисунке ниже (Рисунок 37).
Рисунок 37. Показатели качества наивного Байесовского классификатора с использованием различного количества классов
Как видно из полученных результатов, наиболее оптимальным является разбиение на 20 классов, что может быть объяснено более частым повторением определенных признаков скомпрометированных транзакций, так как больше данных случаев может быть включено в один класс.
Таким образом, итоговая модель с использованием наивного Байесовского классификатора может быть построена с использованием сгруппированных исходных данных, разделенных по 20 перцентилям. Для итоговой модели были получены следующие показатели качества предсказаний (Рисунок 38, Таблица 6). Для получения результатов на большем доверительном интервале использовалось 50 итераций проведения исследования.
Таблица 6. Показатели качества итоговой модели с использованием наивного Байесовского классификатора
Параметр |
Медиана |
|
Precision |
0.8064 |
|
Recall |
0.8056 |
|
F1-score |
0.8046 |
|
AUC |
0.9746 |
|
HSS |
0.7992 |
|
TP |
78.95 (81%) |
|
TN |
56 843.7 |
|
FP |
19.3 |
|
FN |
19.05 |
Рисунок 38. Показатели качества итоговой модели с использованием наивного Байесовского классификатора
Рисунок 39. ROC-кривая наивного Байесовского классификатора
Построение модели с использованием дерева решений
Дерево решений на текущий момент является одним из наиболее популярных инструментов для решения задач классификации с использование алгоритмов машинного обучения. Данная модель основывается на последовательное деление всей выборки данных на классы с сохранением максимального количества информации, представленного исходными данными. Также данный метод удобен тем, что он позволяет достаточно быстро производить предсказания и достаточно наглядно отображать зависимость результата от выявленных признаков. В рамках настоящей работы будет использован тип решающих деревьев, основанный на оптимизированном алгоритме CART, который реализован в библиотеке SciKit Learn на языке программирования Python.
Так как настоящий алгоритм использует количественную меру информации, содержащейся в данных, на основании которых производится обучение, дополнительные преобразования данных обучающей выборки, вероятнее всего, приведет к снижению качества формируемой модели. Для доказательства данного факта были проведены эксперименты по использованию деревьев классификации с исходными, а также преобразованными данными (сгруппированными и подвергнутыми дискретизации). Результаты данных экспериментов приведены ниже и доказывают негативное влияние данных преобразований на предсказательную способность модели (Рисунок 40, Рисунок 41).
Рисунок 40. Показатели качества модели дерева решений с использованием избыточной дискретизации
Рисунок 41. Показатели качества модели дерева решений с использованием группировки данных
Как видно из полученных результатов, дальнейшую настройку модели следует производить с не модифицированными данными
Настройка модели
При построении дерева решений существует достаточно большое количество параметров, значения которых могут положительно или отрицательно сказаться на качестве итоговой модели. Основными из них являются:
· Максимальная глубина дерева (max_depth);
· Минимальное количество экземпляров для разделения (min_samples_split);
· Минимальное количество наблюдений в листе дерева (min_samples_leaf).
Все эти параметры требуют достаточно точной настройки с целью избежать переобучения модели, но при этом сохранить ее предсказательную способность на высоком уровне.
Так как при построении дерева решений для выявления скомпрометированных транзакций используется крайне несбалансированный набор данных, то каждая, даже единичная, мошенническая операция может нести в себе определенный признак компрометации, то показатель min_samples_leaf следует оставить на уровне по умолчанию, равном единице.
В качестве критерия для разделения экземпляров между классами при построении дерева будет использоваться критерий Джини.
Для определения оптимальной глубины дерева было проведено эмпирическое исследование, в рамках которого производилось построение дерева решений с различной глубиной. При этом необходимо учитывать, что максимально возможное количество листов дерева будет увеличиваться экспоненциально, как степень двойки. Так как настоящий набор данных содержит около 492 мошеннические операции, причем для обучения будет использоваться 400 из них (то есть 80% от выборки), то максимальная глубина дерева, имеющая смысл, будет составлять около 9-10 уровней. При увеличении количества уровней будет повышаться вероятность переобучения модели вследствие работы с единичными ветками дерева, для которых признаки компрометации являются неявными.
Эксперимент с различной глубиной дерева решений был проведен для следующих значений данного параметра: 3, 5, 6, 7, 8, 9, 10, 15, 20. Для получения более точных результатов использовался последовательный метод Монте-Карло с 20 итерациями обучения-предсказания. Результаты проверки приведены на рисунке ниже (Рисунок 42).
Рисунок 42. Показатели качества модели дерева решений с различной глубиной
Как видно из рисунка выше, наиболее высокие результаты показывает дерево решений с максимальной глубиной 10 уровне.
На следующем этапе построения модели было проведено исследование, направленное на определение наиболее подходящего значения параметра min_samples_split. Для этого был проведен ряд экспериментов по построению модели для различных значений данного параметра. В рамках экспериментов использовались следующие значения: 2, 4, 6, 8, 10, 12, 20. Данные значения были выбраны, так как для слишком низкого значения данного параметра повышается риск переобучения модели, но с другой стороны, для высоких значений имеет место недостаточный уровень выявления значимых признаков компрометации банковских операций. Результаты проведенного исследования отражены на диаграммах ниже (Рисунок 43).
Рисунок 43. Показатели качества модели дерева решений с различным ограничением по количеству экземпляров для деления ноды
Таким образом, для построения итогового дерева решений были использованы следующие параметры:
· max_depth = 10
· min_samples_split = 6
Также дерево решений должно быть построено на основании не модифицированных исходных данных, так как предобработка данных используемыми в рамках настоящей работы методами приводит к снижению качества формируемых предсказаний. Для итогового классификатора на основании дерева решений были получены следующие показатели качества предсказаний (Таблица 7, Рисунок 44).
Таблица 7. Показатели качества итоговой модели с использованием дерева решений
Параметр |
Медиана |
|
Precision |
0.8772 |
|
Recall |
0.7607 |
|
F1-score |
0.814 |
|
AUC |
0.8944 |
|
HSS |
0.8137 |
|
TP |
74.55 (76%) |
|
TN |
56 852.4 |
|
FP |
10.6 |
|
FN |
23.45 |
Рисунок 44. Показатели качества итоговой модели с использованием дерева решений
Рисунок 45. ROC-кривая модели с исползованием дерева решений
Построение модели с использованием адаптивного бустинга
Один из средств для повышения качества предсказательной модели является использование ансамблей классификаторов вместо единичных аналитических моделей. Как было описано раньше, алгоритм адаптивного бустинга позволяет строить комитеты из однотипных моделей, каждый последующий из которых должен обучаться исключительно на ситуациях, которые сложны для предсказания базовой моделью.
Алгоритм адаптивного бустинга применим практически для всех используемых в настоящей работе моделей, однако его использование может быть рационально не для всех из них. Для определения классификаторов, качество которых повысится от использования ансамблей был проведен эксперимент по использованию различных моделей классификации в рамках данного алгоритма. Показатели качества предсказаний для использования различных моделей в рамках ансамблей и индивидуальных классификаторов приведены в таблице ниже (Таблица 8).
Таблица 8. Результаты использования ансамбля классификаторов
Модель |
Единичный классификатор |
Ансамбль классификаторов |
|||||
F1 |
Precision |
Recall |
F1 |
Precision |
Recall |
||
Логистическая регрессия |
0,8169 |
0,8128 |
0,823 |
0,7356 |
0,6756 |
0,8092 |
|
Метод опорных векторов |
0,7859 |
0,8138 |
0,7704 |
0,6461 |
0,5933 |
0,7827 |
|
Наивный Байесовский классификатор |
0,802 |
0,8026 |
0,8033 |
0,0957 |
0,1413 |
0,5878 |
|
Дерево решений |
0,8245 |
0,8965 |
0,7643 |
0,8639 |
0,9504 |
0,7929 |
Как видно из таблицы выше, алгоритмы адаптивного бустинга наиболее применим именно с деревьями решений. Вследствие этого, вместо использования единичных деревьев решений следует использовать их ансамбли. При этом, для достижения лучших результатов требуется дополнительная настройка модели.
Настройка модели
Помимо основных параметров для каждого дерева решений, также важным параметром для построения модели является подбор наиболее подходящего количества деревьев, которые должны использоваться в рамках формируемой модели. Для определения значения данного параметра было проведено исследование с различными значениями данного параметра. По результатам экспериментов было получено, что наиболее оптимальное количество классификаторов равно 80 (Рисунок 46).
Рисунок 46. Показатели качества модели адаптивного бустинга для различного количества классификаторов
Другим важным параметром является максимально допустимая глубина дерева. При этом, глубина может быть меньше, чем при использовании в модели дерева решений, так как в данном случае благодаря большому количеству решающих деревьев точность предсказания будет формироваться на основании множественного решения классификаторов.
Для выбора наиболее подходящей глубины дерева решений, используемого в рамках ансамбля классификаторов использовался эксперимент со следующими значениями глубины: 2, 3, 4, 6, 8, 10. Усредненные показатели качества для данных моделей отражены на диаграмме ниже (Рисунок 47).
Рисунок 47. Показатели качества адаптивного бустинга с использованием деревьев различной глубины
Таким образом, для достижения высокой предсказательной способности достаточно использовать деревья глубиной 8 уровней, что на 2 уровня меньше, чем для единичного дерева решений. Также следует определить минимальное количество экземпляров для разделения узла дерева, причем их количество может быть значительно меньше, чем для одного дерева, так как данный алгоритм в значительно меньшей степени подвержен переобучению. Для определения было проведено построения модели адаптивного бустинга для следующих значений параметра min_samples_split: 2, 4, 6, 8. По результатам проведенного эксперимента наиболее рационально использования значения параметра равное двум (Рисунок 48).
Рисунок 48. Показатели качества адаптивного бустинга с использованием различного порога деления узла дерева
Таким образом, итоговая предсказательная модель с использованием алгоритма адаптивного бустинга может быть построена с использованием деревьев решений со следующими параметрами:
· Количество классификаторов = 80
· Min_samples_split = 2
· Max_depth = 8
Показатели качества предсказаний, формируемых данной моделью для 10 итераций представлены в таблице и на диаграмме Бокса-Вискерса ниже (Рисунок 49, Таблица 9).
Таблица 9. Показатели качества итоговой модели с использованием адаптивного бустинга
Параметр |
Медиана |
|
Precision |
0.9611 |
|
Recall |
0.7837 |
|
F1-score |
0.8627 |
|
AUC |
0.9682 |
|
HSS |
0.8625 |
|
TP |
76.8 (78%) |
|
TN |
56 859.9 |
|
FP |
3.1 |
|
FN |
21.2 |
Рисунок 49. Показатели качества итоговой модели с использованием адаптивного бустинга
Рисунок 50. ROC-кривая модели с использованием адаптивного бустинга
Построение модели с использованием случайных лесов
Метод случайных лесов является также алгоритмом, работающим с ансамблем классификаторов. Как было описано ранее, в данном случае используется множество деревьев классификации, которые строятся для множества под-выборок из обучающего набора данных.
Так как в рамках данной методики строятся деревья решений для более конкретных случаев, ограничения на глубину дерева и минимальное количество экземпляров для разделения могут отличаться от единичного дерева решений. Таким образом, требуется дополнительная настройка модели для определения оптимального значения параметров
Помимо стандартных настроек деревьев решений, также важным параметром является количество используемых классификаторов, то есть количество решающих деревьев в ансамбле. Увеличение данного параметра должно положительно влиять на качество формируемых предсказаний, однако он увеличивает время обучения, приблизительно линейно. В рамках библиотеки, которая использовалась для реализации метода случайного леса по умолчанию используется значение 50.
Для определения оптимального количества классификаторов был проведен ряд экспериментов с различными значениями исследуемого параметра. Результаты отражена на диаграмме ниже (Рисунок 51).
Рисунок 51. Показатели качества случайного леса для различного количества деревьев
Аналогично методу адаптивного бустинга, также требуется определить максимально допустимую глубину для используемых деревьев. Однако в данному случае каждое из деревьев будет формироваться на основании случайной под-выборки, из-за чего отсутствует гарантия, что последующие деревья будут в большей степени обрабатывать случаи, не учитываемые предыдущим классификатором. Вследствие этого необходимо использовать более глубокие деревья для учета всех особенностей каждой конкретной под-выборки. Для проведения эксперимента использовались следующие значения максимальной глубины: 8, 10, 15, 20, 40. По результатам проведенного эксперимента можно сделать вывод, что наиболее подходящим значением ограничения глубины дерева является 15 уровней (Рисунок 52).
Рисунок 52. Показатели качества случайного леса для деревьев различной глубины
Так же, как и для алгоритма адаптивного бустинга, алгоритм случайного леса значительно менее подвержен переобучению, вследствие чего параметры каждого используемого дерева могут быть более нацеленными на индивидуальные наблюдения. Это предположение влечет за собой необходимость также подобрать и значение ограничения на минимальное количество экземпляров для разделения узла дерева, которое может быть меньшим, чем для дерева решений. При проведении эксперимента использовались следующие значения параметра: 2, 4, 6, 8, 10. Результаты проверки отражены на диаграмме ниже (Рисунок 53).
Рисунок 53. Показатели качества случайного леса для различного количества объектов для разделения узла
Как видно из результатов, наибольшее качество модели достигается при использовании значения параметра, равного 4. Таким образом, для построения итоговой модели с использованием случайных лесов использовались следующие настройки:
· Количество классификаторов: 80
· Максимальная глубина дерева: 15
· Минимальное количество экземпляров для разделения: 4.
Итоговые показатели качества предсказания, сформированные для такого рода классификатора отражены в таблице и на диаграмме ниже (Рисунок 54, Таблица 10). Из данных показателей можно сделать вывод о том, что данная модель позволяет достичь максимальной предсказательной способности для выявления мошеннических транзакций.
Таблица 10. Показатели качества итоговой модели случайных лесов
Параметр |
Медиана |
|
Precision |
0.9521 |
|
Recall |
0.8 |
|
F1-score |
0.8687 |
|
AUC |
0.9786 |
|
HSS |
0.8535 |
|
TP |
78.4 (80%) |
|
TN |
56 858.9 |
|
FP |
4.1 |
|
FN |
19.6 |
Рисунок 54. Показатели качества итоговой модели случайных лесов
Рисунок 55. ROC-кривая для модели случайных лесов
Формирование сводной модели
Описание подходов и предположений относительно итоговой модели
Построение сводной модели подразумевает объединение различных техник, рассмотренных ранее, в один интегрированный системный подход, который позволит достичь более высоких предсказательных качеств модели благодаря синергии совместного функционирования отдельных моделей. Таким образом, если какие-либо из рассмотренных моделей лучше идентифицируют скомпрометированные транзакции на основании одного набора признаков, а другие модели - на основании других признаков, то сводная модель, состоящая из всех моделей позволит учитывать преимущества и недостатки каждой из моделей и компенсировать их за счет других моделей.
В рамках настоящей работы для формирования сводной модели предполагается рассмотрение наиболее простых математических моделей, в частности:
· Модель голосования (voting);
· Логистическая регрессия;
· Наивный Байесовский классификатор;
· Дерево решений.
Данные методы выбраны вследствие того, что они являются ключевыми представителями различных классов предсказательных моделей для задачи классификации, а также обладают максимальной быстротой из всех рассмотренных в настоящей работе моделей.
При этом так как итоговая модель может быть использована в том числе в рамках программных продуктов классов Fraud Prevention и Fraud Detection, то они накладывают ряд ограничений и требований к выполняемым расчетам. В частности, системы Fraud Prevention производят обработку значительного количества транзакций в режиме реального времени, вследствие чего, данные модели требуют высокого уровня производительности. Тем не менее, ряд методик, используемых в данной работе, требуют значительно больших временных затрат и вычислительных мощностей для формирования прогнозов. Данный факт подтверждается различиями во времени обучения и времени предсказания для моделей, отображенных на диаграмме ниже (Рисунок 56). Все измерения производились для 20% исходного набора данных средствами языка Python с использованием персонального компьютера со следующими характеристиками:
Таблица 11. Характеристики персонального компьютера для определения производительности алгоритмов
Параметр |
Значение |
|
Количество ядер процессора |
4 |
|
Количество потоков |
8 |
|
Кэш память |
8 Мб |
|
Разрядность |
x64 |
|
Тактовая частота процессора |
2,9 GHz |
|
Объем оперативной памяти |
16 Гб |
Рисунок 56. Длительность обучения и предсказания для различных моделей
Из полученных результатов видно, что метод K-ближайших соседей требует значительно большего, по сравнению с другими моделями, времени на формирования предсказания. Также предсказание методами адаптивного бустинга и случайных лесов требует практически секунды на используемых мощностях. В рассматриваемых условиях время обучения моделей не является значительным ограничением, вследствие чего детально анализироваться не будет.
Таким образом, при построении моделей следует рассматривать две спецификации итоговой модели:
1. Модель, которая требует высокой производительности;
2. Модель, которая направлена на максимальное качество результатов без ограничений на используемые ресурсы.
Модель голосования
Модель голосования является наиболее простым подходом к получению консолидированного результата на основании предсказаний, сделанных отдельными компонентами. Данная модель заключается в определении определенного порога, который указывает на количество моделей, голоса которых требуются для формирования вердикта относительно наблюдения. В рамках рассматриваемой задачи данный порог будет определять минимальное количество моделей, которые определили транзакцию как мошенническую для заключения, что она, действительно, является скомпрометированной.
Для определения наиболее оптимального значения порога для одной итерации обучения и предсказания были рассмотрено количество моделей, которое проголосовало за тот или иной вид транзакций. Результаты для используемых моделей приведены на диаграмме ниже (Рисунок 57).
Рисунок 57. Диаграмма количества проголосовавших моделей
Как видно из полученных результатов, 20 скомпрометированных наблюдений из 98 не были обнаружены ни одной из моделей. При этом, подавляющее большинство скомпрометированных транзакций (65) было верно классифицирована всеми моделями. Также важным наблюдением является пик некорректно классифицированных наблюдений при использовании порога равного трем моделям.
Для определения наиболее рационального порога для всех семи моделей были рассмотрены показатели качества предсказаний для каждого из таких порогов (от 1 до 7 моделей). Результаты показаны на диаграмме ниже (Рисунок 58).
Рисунок 58. Показатели качества модели голосования с различным поргом
Из диаграммы очевидно, что наилучшими предсказательными способностями обладает модель голосования с порогом равным 4 моделям. Показатели F-меры и HSS при этом достигают значений 0.855 и 0.8548, соответственно.
Таблица 12. Показатели качества модели голосования
Параметр |
Медиана |
|
Precision |
0.9119 |
|
Recall |
0.8061 |
|
F1-score |
0.855 |
|
HSS |
0.8548 |
|
TP |
79 (81%) |
|
TN |
56 855.3 |
|
FP |
7.7 |
|
FN |
19 |
Рисунок 59. Показатели качества модели голосования
Если исключить из исходных моделей метод K-ближайших соседей, то результаты качества модели голосования для различного уровня порога выглядят следующим образом (Рисунок 60).
Рисунок 60. Показатели качества модели голосования без использования метода KNN
Параметр |
Медиана |
|
Precision |
0.9454 |
|
Recall |
0.7929 |
|
F1-score |
0.8618 |
|
HSS |
0.8616 |
|
TP |
77.7 (79%) |
|
TN |
56 858.5 |
|
FP |
4.5 |
|
FN |
20.3 |
Рисунок 61. Показатели качества модели голосования без использования метода KNN
Как видно из полученных данных, наивысшее значение показателей F-меры и HSS наблюдается при использовании порога в 4 проголосовавших модели. При данном значении параметра показатели F-меры и HSS достигают 0.8542 и 0.8539, соответственно. Тем не менее, при снижении порога до 3 или даже 2 моделей имеется возможность значительно повысить уровень показателей точности модели, при этом сохраняя достаточно высокий уровень F-меры и HSS (более 0,81). Решение относительно наиболее подходящего порога в данном случае может быть принято на основании трудозатрат, которые финансовая организация может себе позволить относительно подтверждения подозрительных операций. Например, при использовании порога равного 2 моделям, данным сотрудникам придется ежедневно обрабатывать и подтверждать в максимально сжатые сроки около 240 подозрительных операций (из которых около 42 будут ложно положительными). При использовании голосовании минимум 4 моделей, количество операций на проверку сокращается до 202, из которых ложноположительными будут лишь 15. Однако при этом вероятность ложноотрицательного срабатывания увеличивается на 26% (от 19 до 24 сделок).
Таким образом, при использовании данного метода для задач систем класса Fraud Prevention, для которых наиболее важна не только точность, но и скорость предсказания, наиболее оптимально подходит значение порога равное 2. Для систем класса Fraud Detection - напротив рациональнее использовать порог в 4 проголосовавших модели, с учетом модели классификации на основании метода K-ближайших соседей.
Наивный Байесовский классификатор
Другим подходом к определению компрометации банковских транзакций на основании предсказаний составными моделями может быть наивный Байесовский классификатор, который оценивает вероятности того, что транзакция является мошеннической на основании предсказаний, сформированных другими моделями. Данный метод является одним из самых быстрых из рассмотренных, что позволяет производить итоговое предсказание без потери производительности модели. Более того, данный алгоритм не требует дополнительной настройки.
Для итоговой модели, состоящей из всех рассмотренных алгоритмов, показатели качества формируемых предсказаний отображены в таблице и на рисунке ниже (Таблица 13, Рисунок 62).
Таблица 13. Показатели качества итоговой модели с использованием Наивного Байесовского классификатора
Параметр |
Медиана |
|
Precision |
0.9454 |
|
Recall |
0.7929 |
|
F1-score |
0.8618 |
|
HSS |
0.8616 |
|
TP |
77.7 (79%) |
|
TN |
56 858.5 |
|
FP |
4.5 |
|
FN |
20.3 |
Рисунок 62. Показатели качества итоговой модели с использованием Наивного Байесовского классификатора
Если же Наивный Байесовский классификатор используется только для наиболее производительных алгоритмов классификации, то есть если итоговая модель не будет использовать метод K-ближайших соседей, то предсказательные качества модели незначительно снижаются. Полученные результаты для 10 итераций последовательного метода Монте-Карло представлены в таблице и на диаграмме Бокса-Вискерса ниже (Таблица 14).
Таблица 14. Показатели качества итоговой модели с использованием Наивного Байесовского классификатора без метода KNN
Параметр |
Медиана |
|
Precision |
0.9454 |
|
Recall |
0.7929 |
|
F1-score |
0.8618 |
|
HSS |
0.8616 |
|
TP |
77.7 (79%) |
|
TN |
56 858.5 |
|
FP |
4.5 |
|
FN |
20.3 |
Рисунок 63. Показатели качества итоговой модели с использованием Наивного Байесовского классификатора без метода KNN
Как видно из полученных результатов, общее качество предсказательной модели даже повышается при исключении из итоговой модели метода K-ближайших соседей, однако в данном случае снижается уровень показателя полноты.
Логистическая регрессия
Одним из простейших и наиболее производительных способов формирования итоговой модели на основании предсказаний является логистическая регрессия. В результате обучения данной модели может быть сформирована функция, которая позволит определять, является ли сделка мошеннической на основании предсказаний, сформированных входящими в состав модели алгоритмами.
Для итоговой модели, формирующей предсказание на основании всех рассмотренных алгоритмов с помощью метода логистической регрессии, искомая функция может быть представлена следующим образом:
При этом качество предсказаний достигает следующих значений (Таблица 15, Рисунок 64).
Таблица 15. Показатели качества итоговой модели с использованием логистической регрессии
Параметр |
Медиана |
|
Precision |
0.9505 |
|
Recall |
0.7827 |
|
F1-score |
0.858 |
|
HSS |
0.8577 |
|
TP |
76.7 (78%) |
|
TN |
56 859 |
|
FP |
4 |
|
FN |
21.3 |
Рисунок 64. Показатели качества итоговой модели с использованием логистической регрессии
При увеличении производительности итоговой модели за счет исключения метода KNN, итоговые результаты, ожидаемо, ниже, чем у более полной модели, однако все еще превышают аналогичные показатели многих отдельных моделей (Таблица 16, Рисунок 65).
Таблица 16. Показатели качества итоговой модели с использованием логистической регрессии без метода KNN
Параметр |
Медиана |
|
Precision |
0.9505 |
|
Recall |
0.7827 |
|
F1-score |
0.858 |
|
HSS |
0.8577 |
|
TP |
76.7 (78%) |
|
TN |
56 859 |
|
FP |
4 |
|
FN |
21.3 |
Рисунок 65. Показатели качества итоговой модели с использованием логистической регрессии без метода KNN
Дерево решений
Как было рассмотрено ранее, метод дерева решения является достаточно мощным и удобным инструментом для решения задач регрессии и классификации. Основным его преимуществом при составлении итоговой модели является быстрота работы, так как формирование предсказаний производится на основании нескольких простейших логических проверок. Таким образом, данная обработка является крайне быстрой и наглядной.
При использовании метода дерева решений для предсказаний всех используемых моделей достигаются следующие показатели качества предсказаний (Таблица 17, Рисунок 66).
Таблица 17. Показатели качества итоговой модели с использованием дерева решений
Параметр |
Медиана |
|
Precision |
0.9505 |
|
Recall |
0.7827 |
|
F1-score |
0.858 |
|
HSS |
0.8577 |
|
TP |
76.7 (78%) |
|
TN |
56 859 |
|
FP |
4 |
|
FN |
21.3 |
Рисунок 66. Показатели качества итоговой модели с использованием дерева решений
Если исключить из модели предсказания, сформированные методом К-ближайших соседей, для значительного увеличения быстродействия предсказательных алгоритмов, то как можно увидеть из результатов ниже, предсказательная способность модели не изменяется (Таблица 18, Рисунок 67). Таким образом, можно сделать вывод, что в рамках дерева решений, предсказания, сформированные методом К-ближайших соседей, являются незначимыми.
Таблица 18. Показатели качества итоговой модели с использованием дерева решений без метода KNN
Параметр |
Медиана |
|
Precision |
0.9505 |
|
Recall |
0.7827 |
|
F1-score |
0.858 |
|
HSS |
0.8577 |
|
TP |
76.7 (78%) |
|
TN |
56 859 |
|
FP |
4 |
|
FN |
21.3 |
Рисунок 67. Показатели качества итоговой модели с использованием дерева решений без метода KNN
Сравнение качества сформированных моделей
Для принятия решения относительно наиболее подходящего алгоритма необходимо сравнить различные показатели качества формируемых предсказаний для всех сформированных моделей.
Прежде всего будет рассмотрено сравнение моделей, которые нацелены на максимизацию качества предсказаний, причем производительность алгоритмов является вторичной. Для повышения возможности детектирования мошеннических транзакций в данных моделях используется весь спектр методов классификации, рассмотренных в рамках настоящей работы.
При этом упор следует делать не только на сводный показатель по различным показателям качества предсказаний, но и, в частности, достичь максимального уровня показателя полноты, что позволит детектировать большее количество мошеннических транзакций даже при возникновении большего числа ложноположительных заключений модели.
На основании полученных в предыдущем разделе результатов качества может быть построена сравнительная диаграмма, которая приведена ниже (Рисунок 68).
Рисунок 68. Сравнение качества предсказаний для итоговых моделей, построенных на основании различных алгоритмов
Как видно из полученных результатов на основании 10 итераций обучения и проверки моделей, наивысшее значение F-меры и HSS достигается при использовании Наивного Байесовского классификатора. Тем не менее, следует учитывать, что значительно большее значение параметра recall (полнота) достигается при использовании алгоритма голосования со значением порога в 4 проголосовавших модели.
Таким образом, можно сделать вывод, что при использовании всех методов для построения итоговой модели, включая алгоритм К-ближайших соседей, рациональнее использовать агрегирующий метод голосования, что позволяет достигнуть достаточно высокое качество формируемых предсказаний и при этом максимальный уровень полноты. В данном случае из 98 мошеннических наблюдений в проверочной выборке итоговая модель позволяет обнаружить 79, то есть около 81%. При этом, ложноположительных предсказаний будет, в среднем, около 8, то есть 9% от всех выделенных наблюдений.
Что касается модели, которая более применима для систем класса Fraud Prevention, которая требует высоких показателей производительности, то сравнительная характеристика качества моделей выглядит следующим образом (Рисунок 69):
Рисунок 69. Сравнение качества предсказаний для итоговых моделей, построенных на основании различных алгоритмов без метода KNN
В данном случае, как видно из полученных данных, наиболее применимым методом являет Наивный Байесовский классификатор. Также при использовании данной методики достигается и максимальный уровень полноты предсказаний. Более того, предсказания могут быть сформированы достаточно быстро. На вычислительной машине с параметрами, отраженными в Таблица 11, предсказания для 57 000 наблюдений формируются всего за 810 мс.
Выводы
В рамках третьей главы настоящей работы были построены два комплексных подхода к обнаружению потенциально мошеннических операций, основанных на принципах машинного обучения.
Прежде всего был построен ряд аналитических моделей классификации транзакций. Для каждой из таких моделей была произведена индивидуальная настройка. В результате, на основании реальных данных банковских операций было проведено их обучения и определена предсказательная способность каждого отдельного инструмента. Данные инструменты показали высокое качество предсказаний. Значение F-меры и HSS достигали уровня не ниже 0.8.
Так как все анализируемые модели являются представителями различных классов предсказательных алгоритмов, то для повышения качества общего предсказания было принято решения разработать комплексные подходы, с помощью синергетического эффекта от работы отдельных моделей в рамках единой системы.
Таким образом, удалось сформировать два полноценных подхода к обнаружению скомпрометированных операций, каждый из которых нацелен на функционирование в рамках систем классов Fraud Prevention и Fraud Detection. Предсказательная способность данных подходов при этом оказалась выше, чем у отдельных моделей. Уровень F-меры и HSS в рамках итоговых подходов превысили уровень 0,86.
Заключение
В рамках проведенной работы был проведен анализ предметной области, а именно изучение особенностей банковских операций, которые должны учитываться при построении моделей выявления мошеннических банковских транзакций. Прежде всего, было проведено изучение особенностей процесса выявления компрометации транзакций, которые оказывают значительное влияние на процесс построения аналитических моделей. В последующих главах работы особое внимание было уделено выявленным особенностям, таким как огромные объемы данных, их крайняя несбалансированность и пр.
Далее, в рамках проведенного исследования был проведен анализ доступной информации, которая может использоваться в рамках производимого анализа. В частности, был рассмотрен стандарт ISO 8583, согласно которому жестко регламентирован перечень атрибутов, необходимый для обработки транзакции всеми сторонами процесса совершения сделки. Именно эти данные и должны использоваться для построения модели обнаружения компрометации банковских транзакций.
Для формирования более точной задачи и использования четких требований к разрабатываемым предсказательным моделям были рассмотрены различные методы классификации банковских транзакций, в число которых вошли статистические методы анализа, такие как логистическая регрессия, а также методы машинного обучения с учителем, которые могут быть разделены на:
· Методы классификации на основании расстояний:
o Метод К-ближайших соседей;
o Метод опорных векторов;
· Вероятностные методы классификации - Наивный Байесовский классификатор;
· Графовые методы классификации - деревья решений;
· Ансамбли классификаторов - Адаптивный бустинг и случайные леса.
Затем, были рассмотрены методы определения качества формируемой модели, которые требуют расширения классической модели оценки качества модели вследствие крайней несбалансированности исходных данных. На основании проведенного исследования был сделан вывод для определения качества модели использовать следующие показатели:
· Precision (полнота);
· Recall (точность);
· F1-score (F-мера);
· Heidke Skill Score (HSS).
Более того, для минимизации зависимости от разбиения данных на тестовую и обучающую выборку, процесс проверки каждой из моделей основывался на итеративном подходе с использованием последовательного метода Монте-Карло.
В заключительной части работы был проведен анализ исходных данных, которые были подготовлены для схожего исследования французской корпорацией Worldline, которая предоставляет услуги в области проведения банковских операций и Группы машинного обучения Свободного Университета Брюсселя. Для этого набора данных были выявлены все внутренние зависимости между данными, а также изучены различные методы модификации исходных данных для повышения качества обучения моделей.
На основании проведенного исследования было произведено построение нескольких аналитических предсказательных моделей, которые с достаточно высокой точностью и полнотой способны производить обнаружение мошенничества. Все полученные модели легли в основу комплексных подходов выявления компрометации транзакций, способные стать инструментом, лежащим в основе систем класса Fraud Prevention и Fraud Detection. Данные модели были настроены, обучены и проверены на основании реальных данных платежной системы WorldLine.
Таким образом, в ходе настоящей выпускной квалификационной работы были сформированы специализированные аналитические предсказательные модели, основанные на принципах машинного обучения, и способные обнаруживать факты компрометации банковских операций. Для каждой из таких моделей были подобраны методы предобработки исходных данных и настройки. В результате, предсказательная способность сформированных методик обнаружения мошеннических операций достигла высокого уровня, что позволяет использовать их в рамках специализированных информационных системах классов Fraud Detection и Fraud Prevention, которые все активнее развиваются как в России, так и по всему миру. Таким образом, поставленные в данном исследовании задачи являются успешно выполненными, а цель работы - достигнутой.
Список источников
1. Fifth report on card fraud, September 2018 - European Central Bank [Электронный источник] - URL: https://www.ecb.europa.eu/pub/cardfraud/html/ecb.cardfraudreport201809.en.html#toc1 Режим доступа: 12.01.2018
2. David Robertson Card Fraud Worldwide / David Robertson // THE NILSON REPORT - 2018 - November - Issue 1142, C. 8-12
3. Данные банка России. 2017 г. - Годовой отчет. [Электронный ресурс] - URL: http://www.cbr.ru/Collection/Collection/File/7796/ar_2017.pdf Режим доступа: 12.01.2018
4. Анастасия Алексеевских Воровать деньги с карт стали чаще, но берут меньше / Анастасия Алексеевских / Известия [Электронный ресурс] - URL: https://iz.ru/713533/anastasiia-alekseevskikh/vorovat-dengi-s-kart-stali-chashche-no-berut-menshe Режим доступа: 12.01.2018
5. FICO. Evolution of card fraud in Europe 2017. Russia [Электронный ресурс] - URL: https://www.fico.com/europeanfraud/russia
6. О внесении изменений в отдельные законодательные акты Российской Федерации в части противодействия хищению денежных средств [Текст]: Федеральный Закон от 27.06.2018 N 167-ФЗ [Электронный источник] - URL: http://www.consultant.ru/document/cons_doc_LAW_301060/
7. Number of transactions per type of payment service - European Central Bank Statistical Warehouse [Электронный источник] - URL: https://sdw.ecb.europa.eu/reports.do?node=1000001387
8. Шведов А.С. Теория вероятности и математическая статистика / Шведов А.С. // Москва: Изд. дом ГУ-ВШЭ, 2005 - 254С
9. Zareapoor M. et al. Application of credit card fraud detection: Based on bagging ensemble classifier //Procedia Computer Science. - 2015. - Т. 48. - №. 2015. - С. 679-685.
10. Van Vlasselaer V. et al. APATE: A novel approach for automated credit card transaction fraud detection using network-based extensions //Decision Support Systems. - 2015. - Т. 75. - С. 38-48.
11. Oberoi R. Credit-Card Fraud Detection System: Using Genetic Algorithm. - 2017. //International Journal of Computer & Mathematical Sciences - 2017 - C. 59-63
12. Abdallah A., Maarof M. A., Zainal A. Fraud detection system: A survey //Journal of Network and Computer Applications. - 2016. - Т. 68. - С. 90-113.
13. Carcillo F. et al. SCARFF: A scalable framework for streaming credit card fraud detection with spark //Information fusion. - 2018. - Т. 41. - С. 182-194.
14. Кривошапова С.В., Литвин Е.А. Оценка и способы борьбы с мошенничеством с банковскими картами в России //Международный журнал прикладных и фундаментальных исследований. - 2015. - №. 4-1.
15. ISO 8583-1:2003 Financial transaction card originated messages -- Interchange message specifications -- Part 1: Messages, data elements and code values [Электронный ресурс] URL: https://www.iso.org/standard/31628.html Режим доступа: 26.01.2019
16. Bolton R. J., Hand D. J. Statistical fraud detection: A review //Statistical science. - 2002. - С. 235-249.
17. Menard S. Applied logistic regression analysis. - Sage, 2002. - Т. 106.
18. Shen A., Tong R., Deng Y. Application of classification models on credit card fraud detection //Service Systems and Service Management, 2007 International Conference on. - IEEE, 2007. - С. 1-4.
19. Cover T., Hart P. Nearest neighbor pattern classification //IEEE transactions on information theory. - 1967. - Т. 13. - №. 1. - С. 21-27.
20. Denoeux T. A k-nearest neighbor classification rule based on Dempster-Shafer theory //IEEE transactions on systems, man, and cybernetics. - 1995. - Т. 25. - №. 5. - С. 804-813.
21. Singh A., Yadav A., Rana A. K-means with Three different Distance Metrics //International Journal of Computer Applications. - 2013. - Т. 67. - №. 10.
22. Hand D. J., Vinciotti V. Choosing k for two-class nearest neighbour classifiers with unbalanced classes //Pattern recognition letters. - 2003. - Т. 24. - №. 9-10. - С. 1555-1562.
23. Rish I. et al. An empirical study of the naive Bayes classifier //IJCAI 2001 workshop on empirical methods in artificial intelligence. - 2001. - Т. 3. - №. 22. - С. 41-46.
24. Suykens J. A. K., Vandewalle J. Least squares support vector machine classifiers //Neural processing letters. - 1999. - Т. 9. - №. 3. - С. 293-300.
25. Safavian S. R., Landgrebe D. A survey of decision tree classifier methodology //IEEE transactions on systems, man, and cybernetics. - 1991. - Т. 21. - №. 3. - С. 660-674.
26. Rдtsch G., Onoda T., Mьller K. R. Soft margins for AdaBoost //Machine learning. - 2001. - Т. 42. - №. 3. - С. 287-320.
27. Liaw A. et al. Classification and regression by randomForest //R news. - 2002. - Т. 2. - №. 3. - С. 18-22.
28. Hill T., Lewicki P., Lewicki P. Statistics: methods and applications: a comprehensive reference for science, industry, and data mining. - StatSoft, Inc., 2006.
29. Powers D. M. Evaluation: from precision, recall and F-measure to ROC, informedness, markedness and correlation. - 2011.
30. Fawcett T. An introduction to ROC analysis //Pattern recognition letters. - 2006. - Т. 27. - №. 8. - С. 861-874.
31. Dorfman D. D. et al. Monte Carlo validation of a multireader method for receiver operating characteristic discrete rating data: factorial experimental design //Academic radiology. - 1998. - Т. 5. - №. 9. - С. 591-602.
32. Smith A. Sequential Monte Carlo methods in practice. - Springer Science & Business Media, 2013.
33. Credit Card Fraud Detection. Anonymized credit card transactions labeled as fraudulent or genuine - [Электронный ресурс] URL: https://www.kaggle.com/mlg-ulb/creditcardfraud Режим доступа: 23.01.2019
34. Jolliffe I. Principal component analysis. - Springer Berlin Heidelberg, 2011. - С 518.
35. Padmaja T. M. et al. An unbalanced data classification model using hybrid sampling technique for fraud detection //International Conference on Pattern Recognition and Machine Intelligence. - Springer, Berlin, Heidelberg, 2007. - С. 341-348.
36. Yen S. J., Lee Y. S. Under-sampling approaches for improving prediction of the minority class in an imbalanced dataset //Intelligent Control and Automation. - Springer, Berlin, Heidelberg, 2006. - С. 731-740.
37. G. Lemaitre, F. Nogueira, D. Oliveira, C. Aridas Revision Imbalanced-Lear. User Guide [Электронный ресурс] URL: https://imbalanced-learn.readthedocs.io/en/stable/user_guide.html Режим доступа: 29.01.2019
38. The SkiPy community. Numpy developer guide [Электронный ресурс] URL: https://docs.scipy.org/doc/numpy/dev/ Режим доступа: 29.01.2019
39. Pedregosa F. et al. Scikit-learn: Machine learning in Python //Journal of machine learning research. - 2011. - Т. 12. - №. Oct. - С. 2825-2830.
40. Buitinck L. et al. API design for machine learning software: experiences from the scikit-learn project //arXiv preprint arXiv:1309.0238. - 2013.
41. SciKit Learn developers. User Guide [Электронный ресурс] URL: https://scikit-learn.org/stable/user_guide.html Режим доступа: 29.01.2019
Приложения
Приложение 1.
Гистограммы распределения переменных
Приложение 2.
Программный код реализации сформированных подходов
# -*- coding: utf-8 -*-
# Importing libraries
import numpy as np
from scipy import stats
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
import sklearn as skl
from sklearn.naive_bayes import GaussianNB
from sklearn.svm import LinearSVC
from sklearn.calibration import CalibratedClassifierCV
import random
import time
import os
from imblearn.over_sampling import SMOTE
from imblearn.under_sampling import NearMiss
from sklearn.metrics import precision_score, recall_score, f1_score, roc_curve, accuracy_score, \
classification_report, confusion_matrix
# ---Model settings------------------
# General settings
train_rate = 0.8
test_at_all = False
iterations_number = 10
logistic_regression_model = True
k_nearest_model = True
naive_bayes_model = True
svm_model = True
decision_tree_model = True
ada_boost_model = True
random_forest_model = True
# Data paths
data_path = '/Users/r.pianov/Downloads/ВКР/creditcard.csv'
save_to_path = '/Users/r.pianov/Downloads/ВКР/results/'
# Additional parameters
class_name = 'Class'
models_list = list()
models_list.append('Major voting')
models_list.append('Naive Bayes')
models_list.append('Logistic regression')
models_list.append('Decision tree')
models_list.append('Major voting W/O KNN')
models_list.append('Naive Bayes W/O KNN')
models_list.append('Logistic regression W/O KNN')
models_list.append('Decision tree W/O KNN')
# ---Functions------------------
def sample_t_tests(df, classname, to_print):
fraud = df.loc[df[classname] == 1]
no_fraud = df.loc[df[classname] == 0]
cols = df.columns
cols = cols.tolist()
cols.remove(classname)
imp_cols = []
pvs = []
for c in cols:
statistic, p_value = stats.ttest_ind(fraud[c], no_fraud[c])
if to_print:
print("T Test: " + c + " P-value: " + str(round(p_value, 3)))
pvs.append(p_value)
if p_value < 0.01 and not ('Time' in c):
imp_cols.append(c)
if to_print:
fig, ax = plt.subplots()
indexes = range(len(cols))
ax.set_title('Independent samples t-test p-values')
ax.bar(height=pvs, x=indexes, tick_label=cols)
ax.set_xlabel('Variable')
ax.set_ylabel('P-value')
Подобные документы
Общее понятие, поддержка и основные свойства транзакций. Модели плоских транзакций и их хроники. Модель вложенных транзакций: сущность и примеры. Модель многоуровневых транзакций и рабочих потоков. Классификация различных систем обработки транзакций.
курсовая работа [1,2 M], добавлен 08.02.2011Разработка учебного электронного пособия, в котором по средствам интерактивного участия пользователь освоит механизмы осуществления удаленных банковских транзакциях и методы их защиты. Разработка в среде Macromedia Flash MX, язык - ActionScript 2.0.
дипломная работа [3,3 M], добавлен 30.08.2010Изучение методики учета банковских и финансовых операций в бюджетной организации. Описание программных средств и разработка автоматизированной информационной системы по учету банковских операций. Характеристика алгоритма и блок-схемы АИС организации.
дипломная работа [1,6 M], добавлен 24.09.2012Исследование рынка банковских программ. Анализ эффективности различных рекомендательных алгоритмов. Обзор имеющихся подходов выработки рекомендаций. Архитектура разрабатываемой системы. Методы коллаборативной фильтрации. Использование контентных методов.
курсовая работа [678,2 K], добавлен 31.08.2016Целостность БД как правильность и непротиворечивость ее содержимого на уровне отдельных объектов и операций и базы данных в целом. Понятие и содержание, выполнение и откат транзакции. Сервисные программные средства. Характерные свойства и черты ACID.
презентация [49,8 K], добавлен 19.08.2013Анализ инцидентов информационной безопасности. Структура и классификация систем обнаружения вторжений. Разработка и описание сетей Петри, моделирующих СОВ. Расчет времени реакции на атакующее воздействие. Верификация динамической модели обнаружения атак.
дипломная работа [885,3 K], добавлен 17.07.2016Формирование и предоставление бухгалтерской информации в электронном виде внешним контролирующим органам. Сущность комплекса задач по автоматизации учета банковских операций, ее реализация программе "1С: Бухгалтерия". Особенности технология автоматизации.
курсовая работа [1,2 M], добавлен 23.09.2016Проектирование автоматизированной информационной системы для учета банковских операций в бюджетной организации на платформе 1C: Предприятие. Блок-схема алгоритма решения задачи. Инструкция пользователю, установка программы и контрольный пример ее работы.
дипломная работа [3,2 M], добавлен 23.09.2012Обобщенная модель процесса обнаружения атак. Обоснование и выбор контролируемых параметров и программного обеспечения для разработки системы обнаружения атак. Основные угрозы и уязвимые места. Использование системы обнаружения атак в коммутируемых сетях.
дипломная работа [7,7 M], добавлен 21.06.2011Описание алгоритмического языка для программирования прикладных систем обработки данных. Проектирование базы данных для ведения банковских счетов юридических лиц. Разработка комплекса программ и средств взаимодействия с ЭВМ (меню). Листинг программы.
курсовая работа [76,1 K], добавлен 07.12.2011