Сегодня я попытался создать модель оплаты по умолчанию с различными типами алгоритма SVM и посмотреть, какой из них лучше! (Источник данных: Репозиторий машинного обучения UCI Набор данных клиентов кредитных карт по умолчанию.)Вот шаги, которые я сделал:

1. Деловое понимание

Финансовое учреждение на Тайване столкнулось с серьезной проблемой неплатежей по кредитной карте. Если это будет происходить постоянно, это негативно скажется на финансовом положении компании или может привести к банкротству. Таким образом, компания хотела знать, кто является заслуживающим доверия или не заслуживающим доверия клиентом, прежде чем разрешить им кредитную карту, чтобы свести к минимуму количество просрочек. В этом случае компании необходим прогнозный анализ, чтобы отличить заслуживающего доверия и не заслуживающего доверия клиента. Это связано с тем, что вероятность неизвестна, однако компания может свести к минимуму возникновение просрочек, используя исторические данные клиентов в сочетании с интеллектуальным анализом данных, чтобы предсказать платежи клиентов по умолчанию в следующем месяце. Этот проект помогает компании решить свою проблему путем интеллектуального анализа данных с использованием машины опорных векторов, которая находит закономерности в данных клиентов по кредитным картам для создания модели, полезной для компании, для минимизации и выявления ранних просрочек. Эта модель способна классифицировать между заслуживающими доверия и не заслуживающими доверия клиентами. Метод опорных векторов — это метод классификации, который ищет лучшую гиперплоскость для разделения данных по разным классам. Он также известен как классификатор максимальной маржи, потому что он одновременно минимизирует ошибку классификации и максимизирует геометрическую маржу. Применение результатов модели SVM будет преобразовано в правило, которое используется для анализа доверия клиентов путем ввода предварительно обработанных данных в RapidMiner.

2. Понимание данных

Собрать исходные данные

Скачал набор данных с указанного сайта. Переменная в наборе данных выглядит следующим образом:

- ID

- LIMIT_BAL: Сумма предоставленного кредита (доллары NT): включает как индивидуальный потребительский кредит, так и его/ее семейный (дополнительный) кредит.

- ПОЛ: 1 = мужчина; 2 = женщина

- ОБРАЗОВАНИЕ: 1 = аспирантура; 2 = университет; 3 = средняя школа; 4 = другие

- БРАК: 1 = женат; 2 = одиночный; 3 = другие

- ВОЗРАСТ: год

- ПЛАТ_0, ПЛАТ_2, ПЛАТ_3, ПЛАТ_4, ПЛАТ_5, ПЛАТ_6: история прошлых платежей с апреля по сентябрь 2005 г. шкала измерения статуса погашения: -1 = платить должным образом; 1 = отсрочка платежа на один месяц; 2 = отсрочка платежа на два месяца; . . .; 8 = отсрочка платежа на восемь месяцев; 9 = задержка платежа на девять месяцев и более.

- BILL_AMT1, BILL_AMT2, BILL_AMT3, BILL_AMT4, BILL_AMT5, BILL_AMT6, PAY_AMT1: сумма выписки по счету за сентябрь-апрель 2005 г.

- PAY_AMT2, PAY_AMT3, PAY_AMT4, PAY_AMT5, PAY_AMT6: сумма предыдущего платежа с сентября по апрель.

- оплата по умолчанию в следующем месяце: Да = 1, Нет = 0

Описать данные

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

Исследуйте данные

Ниже визуализация показывает корреляцию между каждой переменной:

На основе матрицы корреляции сильная и слабая корреляция определяется цветом, указанным в легенде. Красный цвет указывает на очень сильную корреляцию между собой (1 балл). Оранжевый цвет указывает на то, что переменная имеет низкую корреляцию друг с другом. Желтый цвет указывает на отсутствие корреляции, а синий цвет указывает на отрицательную корреляцию (от 0 до -0,5 балла). Эти правила применяются для чтения приведенной выше корреляционной матрицы. Наиболее сильная корреляция отмечена красным цветом, когда переменная сама встречается с переменной (например: LIMIT_BAL в качестве оси X с LIMIT_BAL в качестве оси Y). Кроме того, мы также видим, что BILL_AMT1, BILL_AMT2, BILL_AMT3, BILL_AMT4, BILL_AMT5, BILL_AMT6 имеют сильную корреляцию между ними. Переменные, окрашенные в более светлый красный цвет, такие как PAY_0, PAY_2, PAY_3, PAY_4, PAY_5, PAY_6, имеют хорошую корреляцию (выше 0,5 балла) между ними, но не такую ​​сильную, как BILL_AMT. Предположим, что BILL_AMT1 к BILL_AMT6 и PAY_0 к PAY_6 имеют собственное отношение и могут влиять друг на друга.

Проверка качества данных

При изучении набора данных в Excel с использованием фильтра, основанного на PAY_0, PAY_2, PAY_3, PAY_4, PAY_5, PAY_6, есть значения 0 и -2, которые выходят за пределы шкалы измерения, указанной на основе набора данных UCI веб-сайта. Это будет очищено на этапе подготовки данных.

Ниже показана гистограмма и точечная диаграмма для описания взаимосвязи между целевой переменной (платеж по умолчанию в следующем месяце) и другой переменной:

A. СЕКС и оплата по умолчанию в следующем месяце

На этой гистограмме показана сумма платежа клиента по умолчанию в зависимости от его пола. По оси X выделяют два класса: 1 для мужчин и 2 для женщин. Синий цвет указывает на оплату по умолчанию, а зеленый цвет указывает на отсутствие оплаты по умолчанию. Есть 2873 мужчины, которые платят по умолчанию, и 9015 мужчин, которые не платят по умолчанию. Есть 3 763 женщины, которые платят по умолчанию, и 14 349 женщин, которые не платят по умолчанию.

B. Обучение и оплата по умолчанию в следующем месяце

На этой гистограмме показана сумма платежа клиента по умолчанию в зависимости от его образования. По оси X классифицируются 4 класса: 1 для аспирантуры, 2 для университета, 3 для средней школы и 4 для других. Однако выявлено, что в классах 5 и 6 есть данные, которые необходимо очистить при предварительной обработке данных. Синий цвет указывает на оплату по умолчанию, а зеленый цвет указывает на отсутствие оплаты по умолчанию. Есть 2036 клиентов аспирантуры, которые платят по умолчанию, и 9015 клиентов аспирантуры, которые не платят по умолчанию. Есть 3330 клиентов с выпускниками университетов, которые платят по умолчанию, и 10 700 клиентов с выпускниками университетов, которые не платят по умолчанию.

C. Брак и дефолт в следующем месяце

На этой гистограмме показана сумма платежа клиента по умолчанию в зависимости от его семейного положения. По оси X выделяют 3 класса: 1 для женатых, 2 для одиноких и 3 для остальных. Однако выявлено, что в классе 0 есть данные с 49 данными, которые необходимо очистить при предварительной обработке данных. Синий цвет указывает на оплату по умолчанию, а зеленый цвет указывает на отсутствие оплаты по умолчанию. Есть 3 206 женатых клиентов, которые платят по умолчанию, и 10 453 женатых клиента, которые не платят по умолчанию. Есть 3 341 семейное положение одиноких, которые платят по умолчанию, и 12 623 семейных положения одиноких клиентов, которые не платят по умолчанию. Есть 84 семейных положения, которые не являются платежами по умолчанию, и 239 семейных положений, которые не являются платежами по умолчанию.

Вот график рассеяния, описывающий корреляцию всех числовых переменных с целевой переменной:

Из всего приведенного выше графика рассеяния можно интерпретировать, что когда данные расположены вверх по склону вправо, тогда существует положительная связь между осью X и осью Y. Большинство данных не коррелированы. Однако замеченные BILL_AMT1, BILL_AMT2, BILL_AMT3, BILL_AMT4, BILL_AMT5, BILL_AMT6 также демонстрируют восходящую модель между собой. Кроме того, PAY_0, PAY_2, PAY_3, PAY_4, PAY_5, PAY_6 коррелируют между собой, демонстрируя восходящую модель. В то время как синий цвет указывает на оплату по умолчанию, а зеленый цвет указывает на отсутствие оплаты по умолчанию.

3. Подготовка данных

Это самый важный шаг для создания хорошей модели. Это помогает исправить точность, производительность интеллектуального анализа данных и предотвратить ошибки при интеллектуальном анализе данных. В этом проекте это шаг, который был сделан для подготовки данных на основе оператора, используемого в RapidMiner и Microsoft SQL Server:

Выберите данные

Для создания модели будут использованы все переменные, кроме переменной ID. Это потому, что это не имеет отношения к моделированию позже на следующем шаге. Атрибуты, которые выбраны для обучения машины: ВОЗРАСТ, ОБРАЗОВАНИЕ, LIMIT_BAL, SEX, MARRIAGE, PAY_AMT1, PAY_AMT2, PAY_AMT3, PAY_AMT4, PAY_AMT5, PAY_AMT6, AVE_BILL_AMT, AVE_PAY, оплата по умолчанию в следующем месяце.

Чистые данные

На этапе «Понимание данных» было выявлено, что есть некоторые ложные записи данных. В начале очистки данных я решил обновить данные атрибута PAY_0, PAY_2, PAY_3, PAY_4, PAY_5, PAY_6, которые имеют значения 0 и -2, потому что они выходят за пределы шкалы измерения, заданной с помощью Microsoft SQL Server, чтобы сделать это проще, чем Excel. Сначала я заменил значение атрибута PAY_0, PAY_2, PAY_4, PAY_5, PAY_6 в ​​условии:

- Для PAY_0 — PAY_6, который имеет значение 0 с платежом по умолчанию 0 (не просроченный), при условии, что переменная PAY_0 — PAY_6 равна -1 (оплата должным образом). Ниже приведен пример запроса:

обновить кредитную_карту

установить Pay_0=случай, когда Pay_0=0, затем -1, иначе Pay_0 end,

Pay_2=случай, когда Pay_2=0, затем -1, иначе Pay_2 заканчивается,

Pay_3=случай, когда Pay_3=0, затем -1, иначе Pay_3 заканчивается,

Pay_4=случай, когда Pay_4=0, затем -1, иначе Pay_4 заканчивается,

Pay_5=случай, когда Pay_5=0, затем -1, иначе Pay_5 заканчивается,

Pay_6=случай, когда Pay_6=0, затем -1, иначе PAY_6 заканчивается

где [платеж по умолчанию в следующем месяце] = 0

- Для PAY_0-PAY_6 значение 0 с платежом по умолчанию 1 (просроченный платеж), поскольку информация для набора данных не является полной для точного анализа (например, срок платежа, дата платежа). Так что, чтобы продолжить очистку данных, я принимаю для замены значение 0 на основе моего анализа данных. Когда BILL_AMT больше, чем PAY_AMT, я предполагаю, что они относятся к классу 3 (задержка платежа на 3 месяца), но если BILL_AMT меньше, чем PAY_AMT, он переходит к классу 6 (задержка платежа на 6 месяцев). Если BILL_AMT имеет то же значение, что и PAY_AMT в том же месяце, то он переходит в класс -1 (оплата должным образом). Ниже приведен пример запроса, который на самом деле я выполняю для всех переменных PAY_0–6:

обновить кредитную_карту

установить PAY_4 = случай, когда BILL_AMT3 ‹PAY_AMT3, затем 3

когда BILL_AMT3 > PAY_AMT3, то 6

когда BILL_AMT3 = PAY_AMT4, то -1

иначе PAY_4 конец

где [платеж по умолчанию в следующем месяце] =1

и ПЛАТ_4 = 0

- Для PAY_0-PAY_6 значение -2 с платежом по умолчанию 1 (просроченный платеж), поскольку информация для набора данных не является полной для нужд анализа (например, срок платежа, дата платежа). Из-за продолжающейся очистки данных я принимаю для замены значение -2 на основе моего анализа данных. Когда BILL_AMT больше, чем PAY_AMT, я предполагаю, что они относятся к классу 3 (задержка платежа на 3 месяца), но если BILL_AMT меньше, чем PAY_AMT, он переходит к классу 6 (задержка платежа на 6 месяцев). Если BILL_AMT имеет одинаковое значение с PAY_AMT в том же месяце, то он переходит в 1 класс (задержка на один месяц). Ниже приведен пример запроса, который на самом деле я выполняю для всех переменных PAY_0–6:

обновить кредитную_карту

установить Pay_5 = случай, когда BILL_AMT2‹PAY_AMT2, затем 3

когда BILL_AMT2 > PAY_AMT2, то 6

когда BILL_AMT2 = PAY_AMT2, то 1

иначе PAY_5 конец

где [платеж по умолчанию в следующем месяце] =1

и PAY_5 = -2

В значении «Образование» есть данные в классе 5 и 6, которые должны быть только 4 классами на основе классификации переменных из объяснения набора данных на указанном веб-сайте. Поэтому данные в 5 и 6 классе заменены на 4, что означает «другие». Также установлено, что в переменной Marriage есть данные класса 0 с 49 данными, которые заменены на класс 3, что означает «другие».

Построить данные

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

Интеграция данных

Разработка функций путем создания нового атрибута AVE_PAY и AVE_BILLAMT. Это связано с тем, что BILL_AMT1, BILL_AMT2, BILL_AMT3, BILL_AMT4, BILL_AMT5, BILL_AMT6 и PAY_0, PAY_2, PAY_3, PAY_4, PAY_5, PAY_6 имеют сильную корреляцию между собой. Тогда переменные BILL_AMT1-BILL_AMT5 и PAY_0-PAY_6 будут удалены. Однако AVE_BILLAMT и AVE_PAY будут представлять эти переменные в виде их среднего значения. Разработка признаков используется для повышения точности модели. Из 30 000 данных выделяются 25 % (7 500) для обучения и 75 % (22 500) для тестирования. Данные обучения предназначены для того, чтобы машина узнала о наших данных для создания точной модели.

Формат данных

Преобразование данных с использованием «номинального в числовой» после бинирования, поскольку алгоритм SVM в RapidMiner не может принимать полиномиальный тип данных, который необходимо преобразовать в числовой.

4. Моделирование

Выберите технику моделирования

Выбранный алгоритм SVM на основе вопроса. Но в RapidMiner доступно несколько вариантов оператора алгоритма SVM. Я использую 3 алгоритма SVM: стандартный SVM, SVM (LibSVM) и SVM (линейный). Основанный на RapidMiner, этот оператор обеспечивает быстрый алгоритм и хорошие результаты для многих обучающих задач. Он поддерживает различные типы ядер, в том числе точечные, радиальные, полиномиальные, нейронные, анова, эпахнеников, гауссовскую комбинацию и мультиквадратичное. Алгоритм SVM оптимально строит отдельную гиперплоскость в пространстве многомерных признаков (Awad & Khanna, 2015). SVM также является алгоритмом, который используется для прогнозирования. Это также минимизирует верхние границы вероятности ошибки обобщения (Kramar et al., 2018). Оператор SVM (LibSVM) поддерживает типы SVM C-SVC и nu-SVC для задач классификации, а также типы SVM epsilon-SVR и nu-SVR для задач регрессии. Кроме того, для оценки распределения поддерживается одноклассовый тип SVM. SVM (линейный) ограничен точечным (линейным) ядром, но выводит высокопроизводительную модель, которая содержит только линейный коэффициент для более быстрого применения модели Одноклассовый тип SVM дает возможность учиться только на одном классе примеров, а затем тестировать если новые примеры совпадают с известными.

Создать тестовый дизайн

Разделение 30 000 данных на 25 % (7 500) обучения и 75 % (22 500) тестирования с использованием оператора «Разделить» в RapidMiner. Причина, по которой процентное соотношение составляет 25% и 75%, заключается в том, что проверено, что оно дает наилучшую точность для этого набора данных.

Построить модель

1) Получить

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

2) Установить роль

Определите целевую переменную как метку в RapidMiner, используя оператор set role. Установите переменный платеж по умолчанию в следующем месяце в качестве целевой переменной.

3) Предварительная обработка данных

Эти шаги были объяснены в пункте 3 «Подготовка данных». Операторы, которые используются в RapidMiner, состоят из:

- Заменить значение

Заменяет значение именных атрибутов с указанным регулярным выражением на указанную замену. В этой модели замените значение переменной «Образование», выходящее за пределы шкалы измерения (образование 1, замените образование 2, замените брак)

- Создать атрибут

Создает новые атрибуты из атрибутов входного набора примеров и произвольных констант, используя математические выражения. Создание AVE_BILLAMT и AVE_PAY для представления BILL_AMT1–6 AND PAY_0–6.

- Выберите атрибут

Наличие различных типов фильтров для упрощения выбора атрибутов. Выбраны ВОЗРАСТ, ОБРАЗОВАНИЕ, LIMIT_BAL, SEX, MARRIAGE, PAY_AMT1, PAY_AMT2, PAY_AMT3, PAY_AMT4, PAY_AMT5, PAY_AMT6, AVE_BILL_AMT, AVE_PAY.

- нормализовать

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

- Дискретизировать

Дискретизирует выбранные числовые атрибуты в указанное пользователем количество интервалов.

- От номинального к числовому

Цель состоит в том, чтобы изменить тип нечисловых атрибутов на числовой тип. Этот оператор не только изменяет тип выбранных атрибутов, но также отображает все значения этих атрибутов в числовые значения.

- Разделить данные

Вводит набор примеров и доставляет подмножества этого набора примеров через выходные порты.

4) СВМ

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

5) Применить модель

Этот оператор стремится получить обученные данные из набора примеров оператора SVM, а затем применить модель к другому оператору. В этом случае оператор «Применить обучение модели» применяет модель алгоритма SVM к оператору «Применить тестирование модели» для создания данных тестирования в модели.

6) Производительность

После создания модели, чтобы показать производительность всех данных обучения и данных тестирования, нам понадобится оператор производительности. Результат оператора производительности позволяет нам увидеть точность, матрицу путаницы, AUC, ROC, точность и т. д. для поздней оценки.

Оцените модель

Вот результат, который суммирует производительность тестовых данных в виде следующей таблицы:

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

Техника, примененная в модели, заключается в разделении 25% данных обучения и 75% данных тестирования. В этом случае коэффициент разделения данных, выбор алгоритма, определение типа данных, нормализация, группирование и тип данных, которые должны соответствовать алгоритму SVM. влияет на точность модели. Ниже показан процесс моделирования:

Стратегия предотвращения переобучения

· Выбор правильных атрибутов для обучения машины

· Выбор правильного алгоритма прогнозирования просрочек (SVM)

· Создание не слишком сложной, но и не слишком простой модели

· Наличие высокой степени обобщения за счет использования удерживаемых данных для данных обучения (25%) и данных тестирования (75%).

· Следите за результатами производительности с течением времени, чтобы повысить точность и не допустить, чтобы точность данных обучения превышала точность данных тестирования.

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