Введение

В этом руководстве мы прогнозируем анализ рисков возникновения безнадежных долгов с помощью MindsDB. MindsDB — это инструмент машинного обучения с открытым исходным кодом, который обеспечивает автоматизированное машинное обучение для вашей базы данных. MindsDB предлагает возможности прогнозирования в вашей базе данных. Для выполнения этого руководства вам необходимо иметь работающее подключение к MindsDB либо локально, либо через cloud.mindsdb.com. Вы можете использовать это руководство для подключения к облаку MindsDB.

Настройка данных

Подключение данных в виде файла

Выполните следующие действия, чтобы загрузить файл в MindsDB Cloud.

  • Войдите в свою учетную запись MindsDB Cloud, чтобы открыть редактор MindsDB.
  • Перейдите к Add data разделу, нажав кнопку Add data в правом верхнем углу.

  • Выберите вкладку «Файл»

  • Выберите вариант Import File.
  • Загрузите файл (MunicipalDebtAnalysis.csv), назовите таблицу, в которой хранятся данные файла (здесь это Municipal_Debt), и нажмите кнопку Save and Continue.

  • Как только вы закончите загрузку, вы можете запросить данные напрямую с помощью;
SELECT * FROM files.Municipal_Debt LIMIT 10;

Понимание набора данных

Контекст

Эти данные были извлечены из систем выставления счетов 8 муниципалитетов в Южной Африке за 2-летний период и суммированы в соответствии с их общей суммой выставленных счетов по сравнению с общей выплаченной суммой. Для каждой учетной записи есть индикатор того, привела ли эта учетная запись к безнадежной задолженности.

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

Содержание

  • AcCategoryID: (идентификатор категории учетной записи) числовая ссылка в базе данных на категорию учетной записи.
  • AccCategory: (категория аккаунта) классификация типа аккаунта.
  • AccCategoryAbbr: (аббревиатура категории учетной записи) аббревиатура классификации типа учетной записи, используемая для быстрого кодирования.
  • PropertyValue: (Стоимость имущества) рыночная стоимость имущества.
  • PropertySize: (Размер объекта) размер объекта в квадратных метрах.
  • TotalBilling: (Total Billing) общая сумма, выставленная аккаунту за все услуги.
  • AverageBilling: (Average Billing) средняя сумма, выставляемая аккаунту за все услуги.
  • TotalReceipting: (Общая сумма поступлений) общая сумма, полученная на счет за все услуги.
  • AverageReceipting: (средняя сумма поступлений) средняя сумма, поступившая на счет за все услуги.
  • Общая задолженность: (Общая задолженность) Общая задолженность, которая составляет 90 дней или более.
  • TotalWriteOff: (Total Write Off) общая сумма списанного долга.
  • CollectionRatio: (коэффициент сбора) соотношение между общей суммой поступлений и общей суммой выставленных счетов (т. е. общая сумма поступлений/общая сумма счетов).
  • DebtBillingRatio: (Коэффициент выставления счетов) Соотношение между общим долгом и общим счетом (т. е. (общий долг + общее списание)/общий счет).
  • TotalElectricityBill: (общий счет за электроэнергию) общая сумма счета за электроэнергию. Это поле было создано, потому что оно используется как средство для взыскания долга, т.е. Если за какую-либо услугу не выплачена сумма, муниципалитет имеет право отключить потребителя от электричества.
  • HasIDNo: (Идентификационный номер) У потребителя есть идентификационный номер. Это похоже на номер социального страхования в США и может быть полезно в судебных разбирательствах. С потребителя без каких-либо сведений об идентификационном номере взыскать долг намного сложнее. Кроме того, это поле означает, что учетная запись принадлежит физическому лицу, а не компании. Однако он не очень надежен, так как часто не фиксируется должным образом или вообще не фиксируется.
  • BadDebtIndic: (индикатор безнадежной задолженности) 1 = считается безнадежной задолженностью, 0 = не считается безнадежной задолженностью

Источник — Дилан Роулинз

Исходный источник набора данныхАнализ риска муниципального долга

Создание предиктора

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

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

CREATE PREDICTOR debt_predictor
FROM files
    (SELECT * FROM Municipal_Debt)
PREDICT baddebt;

Нажмите кнопку Runили Shift+Enter, чтобы выполнить код. Если предиктор успешно создан, консоль отобразит сообщение Query successfully completed

Понимание набора данных

Контекст

Эти данные были извлечены из систем выставления счетов 8 муниципалитетов в Южной Африке за 2-летний период и суммированы в соответствии с их общей суммой выставленных счетов по сравнению с общей выплаченной суммой. Для каждой учетной записи есть индикатор того, привела ли эта учетная запись к безнадежной задолженности.

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

Содержание

  • AcCategoryID: (идентификатор категории учетной записи) числовая ссылка в базе данных на категорию учетной записи.
  • AccCategory: (категория аккаунта) классификация типа аккаунта.
  • AccCategoryAbbr: (аббревиатура категории учетной записи) аббревиатура классификации типа учетной записи, используемая для быстрого кодирования.
  • PropertyValue: (Стоимость имущества) рыночная стоимость имущества.
  • PropertySize: (Размер объекта) размер объекта в квадратных метрах.
  • TotalBilling: (Total Billing) общая сумма, выставленная аккаунту за все услуги.
  • AverageBilling: (Average Billing) средняя сумма, выставляемая аккаунту за все услуги.
  • TotalReceipting: (Общая сумма поступлений) общая сумма, полученная на счет за все услуги.
  • AverageReceipting: (средняя сумма поступлений) средняя сумма, поступившая на счет за все услуги.
  • Общая задолженность: (Общая задолженность) Общая задолженность, которая составляет 90 дней или более.
  • TotalWriteOff: (Total Write Off) общая сумма списанного долга.
  • CollectionRatio: (коэффициент сбора) соотношение между общей суммой поступлений и общей суммой выставленных счетов (т. е. общая сумма поступлений/общая сумма счетов).
  • DebtBillingRatio: (Коэффициент выставления счетов) Соотношение между общим долгом и общим счетом (т. е. (общий долг + общее списание)/общий счет).
  • TotalElectricityBill: (общий счет за электроэнергию) общая сумма счета за электроэнергию. Это поле было создано, потому что оно используется как средство для взыскания долга, т.е. Если за какую-либо услугу не выплачена сумма, муниципалитет имеет право отключить потребителя от электричества.
  • HasIDNo: (Идентификационный номер) У потребителя есть идентификационный номер. Это похоже на номер социального страхования в США и может быть полезно в судебных разбирательствах. С потребителя без каких-либо сведений об идентификационном номере взыскать долг намного сложнее. Кроме того, это поле означает, что учетная запись принадлежит физическому лицу, а не компании. Однако он не очень надежен, так как часто не фиксируется должным образом или вообще не фиксируется.
  • BadDebtIndic: (индикатор безнадежной задолженности) 1 = считается безнадежной задолженностью, 0 = не считается безнадежной задолженностью

Источник — Дилан Роулинз

Исходный источник набора данныхАнализ риска муниципального долга

Создание предиктора

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

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

CREATE PREDICTOR debt_predictor
FROM files
    (SELECT * FROM Municipal_Debt)
PREDICT baddebt;

Нажмите кнопку Runили Shift+Enter, чтобы выполнить код. Если предиктор успешно создан, консоль отобразит сообщение Query successfully completed

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

SELECT *
FROM mindsdb.predictors
WHERE name='debt_predictor';

После того, как предиктор завершит обучение, вы увидите вывод, аналогичный приведенному ниже. Обратите внимание, что MindsDB автоматически выполняет тестирование модели, поэтому вы сразу увидите, достаточно ли точен предиктор.

Делать предсказания

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

SELECT baddebt, baddebt_explain
FROM mindsdb.debt_predictor
WHERE accountcategoryid = 1
AND accountcategory = 'Residential'
AND acccatabbr = 'RES'
AND propertyvalue = 0
AND propertysize = 0
AND totalbilling = 4177
AND avgbilling = 116
AND totalreceipting = 16525
AND avgreceipting = 2066
AND total90debt = 15
AND totalwriteoff = 0
AND collectionratio = 3.96
AND debtbillingratio = 10
AND totalelecbill = 0
AND hasidno = 0;

Ожидаемый результат:

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

SELECT t.accountcategoryid, t.accountcategory, t.acccatabbr, t.propertyvalue, t.propertysize, t.totalbilling,
t.avgbilling, t.totalreceipting, t.avgreceipting, t.total90debt,
t.totalwriteoff, t.collectionratio, 
t.debtbillingratio, t.totalelecbill, t.hasidno, t.baddebt as real_debt, p.baddebt AS predicted_debt
FROM files.Municipal_Debt AS t
JOIN mindsdb.debt_predictor AS p
LIMIT 10;

Ожидаемый результат:

Дополнительную информацию см. в документации по предложению JOIN.

Что дальше?

Получайте удовольствие, пробуя это сами!

Поставьте лайк или оставьте комментарий, если этот урок был полезен