Рубрика «Алгоритмы» - 60

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

Ошибка первого и второго рода

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

Для банка это — ошибка первого рода.

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

Для оценки качества принимаемых алгоритмом решений, используется коэффициент Джини (GINI). В экономике и в Data Science коэффициент Gini имеет разную интерпретацию. Для кредитного скоринга он рассчитывается, как

GINI = 2 ROC AUC — 1

Для оценки банковского скоринга используется стандартная ROC AUC кривая!

Что влияет на выдачу кредита. Обзор соревнования Home Credit Default Risk - 1
Читать полностью »

Гибридные сортировки - 1

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

Но если в алгоритме комбинируются разные методы, то тогда он относится к классу гибридных сортировок.Читать полностью »

Соревнование от Яндекс.Такси: разбор бэкенд-трека чемпионата по программированию - 1

Вручение призов участникам трека бэкенда

Мы завершаем серию разборов второго чемпионата по программированию. В последние недель мы опубликовали разборы трёх треков: по ML, фронтенду и мобильной разработке. Осталось разобрать трек по бэкенду. Он оказался самым популярным: 2682 человека приняли участие в квалификации, 320 из них дошли до финала. Задачи для бэкенд-разработчиков придумала команда Яндекс.Такси.
Читать полностью »

image

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

Мы рассмотрим такие аспекты как:

  1. Понимание различных подходов к моральным рассуждениям людей в различных (или одинаковых) ситуациях
  2. То, как закон, общество и страховка относятся к рискованному вождению, авариям и несчастным случаям.
  3. Риски и потери при вождении (или обучении вождению), которые мы, похоже, охотно принимаем для получения небольших преимуществ.
  4. Как меняется наш взгляд на то, что «цель оправдывает средства» в зависимости от того, о чем идет речь: преднамеренные злодеяния или небольшие осознанные риски.
  5. Большие преимущества, которые мы получим, когда небольшой автопарк автономных автомобилей научится водить более безопасно, после чего их программное обеспечение будет скопировано в миллионы других машин – ситуация, которая невозможна в случае с водителями-людьми.
  6. Риски и принципы современных подходов к тестированию и разработке автономных автомобилей, и то, как Uber их нарушил.
  7. Огромная выгода, если мы сможем найти правильный подход.

Читать полностью »

Что такое процедурная генерация?

Процедурная генерация включает в себя множество генеративных алгоритмов, принцип работы которых заключается в создании данных не вручную, а алгоритмически: вместо ручного изготовления того, что мы хотим создать (карты, музыки, рельефа…), пишется алгоритм, который успешно может создавать различные примеры без многократного выполнения того же процесса. Особенно полезен такой подход в видеоиграх, где случайным образом может генерироваться целая карта или уровень (например, карты в Minecraft, Terraria или Factorio, или схемы уровней в большинстве roguelike).

Алгоритм коллапса волновой функции и его области применения

В статье мы исследуем алгоритм коллапса волновой функции (WaveFunctionCollapse, WFC), предложенный Максимом Гуминым (в его Twitter есть коллекция потрясающего контента, созданного при помощи этого алгоритма другими разработчиками!) для процедурной генерации изображений или рельефа при помощи создания изображений, локально схожих с входящим изображением в условиях сетки заданного размера.

В основе алгоритма лежит идея пошагового создания готового изображения с отслеживанием того, какие тайлы «соответствуют» уже частично построенному изображению. Для изучения подробного описания алгоритма рекомендуем обратиться к исходному репозиторию WFC на Github и четвёртому разделу статьи "WaveFunctionCollapse is Constraint Solving in the Wild".

Адаптивная процедурная генерация при помощи алгоритма WaveFunctionCollapse и априорного распределения вероятностей - 1

Примеры процедурно сгенерированных из seed изображений
Читать полностью »

Всем привет! Новогодние праздники подошли к концу, а это значит, что мы вновь готовы делиться с вами полезным материалом. Перевод данной статьи подготовлен в преддверии запуска нового потока по курсу «Алгоритмы для разработчиков».

Поехали!


Метод обратного распространения ошибки – вероятно самая фундаментальная составляющая нейронной сети. Впервые он был описан в 1960-е и почти 30 лет спустя его популяризировали Румельхарт, Хинтон и Уильямс в статье под названием «Learning representations by back-propagating errors».Читать полностью »

Логические поля в базах данных, есть ли противоядие - 1

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

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

Основой решения является алгоритм Advantage Actor Critic (A2C) с оценкой Advantage через Generalized Advantage Estimation (GAE).

Под катом математика, реализация на TensorFlow и множество демок того, к каким способам ходьбы сошлись алгоритмы.

Читать полностью »

EricGrig

Предисловие

Я хотел бы начать предисловие со слов благодарности двум замечательным программистам из Одессы: Андрею Киперу (Lohica) и Тимуру Гиоргадзе (Luxoft), за независимую проверку полученных мною результатов, на начальном этапе исследования.

1. Статья «Linear algorithm for solution n-Queens Completion Problem» была опубликована в (arXiv.org) в начале первого дня 2020 года. Изначально статья была написана на русском, поэтому здесь представлено базовое изложение, а там — перевод.

2. Данная задача, и некоторые другие из множества NP-Complete (задача выполнимости булевых формул (3-SAT), задача о поиске максимальной клики, или клики заданного размера …) в разное время, входили в сферу моих интересов. Я искал алгоритмическое решение на основе различных вычислительных экспериментов, но конкретного успеха не было. Это было похоже на то, как человек пытается научиться подтянутся на турнике на одной руке. Результата нет, но каждый раз появляется надежда, что скоро все получится. Последний раз я решил, что следует подольше остановиться на задаче n-Queens Completion (как одной из представителей семейства) и попытаться что-то сделать. Здесь уместно вспомнить замечательный Одесский анекдот: «В переполненном автобусе, который вечером по ухабистой дороге возвращается в пригород, раздается голос женщины – Мужчина, если уж полностью на меня легли, так сделайте хоть что-нибудь».

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

— в матрице решения n строк, в какой последовательности следует выбирать индекс строки, если число возможностей для такого выбора составляет n!
Читать полностью »

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

Это был далекий 2015 год. На тот момент уже был опыт работы в e-commerce разных масштабов и стандартные решения «по популярности» не устраивали. Начались поиски как это сделать наилучшим образом.

Были определены следующие задачи:

  • Полная автоматизация
  • Разных сегменты товаров по цене (присутствие как дешевых так и дорогих товаров)
  • Приоритет по просмотрам
  • Приоритет по продажам
  • На первые 10 позиций должны приходится все популярные товары по:
    • цене
    • просмотрам
    • продажам
    • доходности

В итоге получилась формула которая учитывает все эти данные и считает автоматически.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js