Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Коэффициент Джини. Из экономики в машинное обучение

Время на прочтение17 мин
Количество просмотров124K
Интересный факт: в 1912 году итальянский статистик и демограф Коррадо Джини написал знаменитый труд «Вариативность и изменчивость признака», и в этом же году «Титаник» затонул в водах Атлантики. Казалось бы, что общего между этими двумя событиями? Всё просто, их последствия нашли широкое применение в области машинного обучения. И если датасет «Титаник» в представлении не нуждается, то об одной замечательной статистике, впервые опубликованной в труде итальянского учёного, мы поговорим поподробней. Сразу хочу заметить, что статья не имеет никакого отношения к коэффициенту Джини (Gini Impurity), который используется в деревьях решений как критерий качества разбиения в задачах классификации. Эти коэффициенты никак не связаны друг с другом и общего между ними примерно столько же, сколько общего между трактором в Брянской области и газонокосилкой в Оклахоме.

Коэффициент Джини (Gini coefficient) — метрика качества, которая часто используется при оценке предсказательных моделей в задачах бинарной классификации в условиях сильной несбалансированности классов целевой переменной. Именно она широко применяется в задачах банковского кредитования, страхования и целевом маркетинге. Для полного понимания этой метрики нам для начала необходимо окунуться в экономику и разобраться, для чего она используется там.
Читать дальше →
Всего голосов 67: ↑66 и ↓1+65
Комментарии17

Пример решения задачи кредитного скоринга c помощью связки python+pandas+scikit-learn

Время на прочтение12 мин
Количество просмотров81K

Введение


Добрый день, уважаемые читатели.
Недавно, бродя по просторам глобальной паутины, я наткнулся на турнир, который проводился банком ТКС в начале этого года. Ознакомившись с заданиями, я решил проверить свои навыки в анализе данных на них.
Начать проверку я решил с задачи о скоринге (Задание №3). Для ее решения я, как всегда, использовал Python с аналитическими модулями pandas и scikit-learn.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии8

Краткий курс машинного обучения или как создать нейронную сеть для решения скоринг задачи

Время на прочтение28 мин
Количество просмотров209K
image

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

Если тебе интересно машинное обучение, то приглашаю в «Мишин Лернинг» — мой субъективный телеграм-канал об искусстве глубокого обучения, нейронных сетях и новостях из мира искусственного интеллекта.

Вопросы, которые разобраны в статье:

• Как собрать и подготовить данные для построения модели?
• Что такое нейронная сеть и как она устроена?
• Как написать свою нейронную сеть с нуля?
• Как правильно обучить нейронную сеть на имеющихся данных?
• Как интерпретировать модель и ее результаты?
• Как корректно оценить качество модели?
Поехали!
Всего голосов 51: ↑42 и ↓9+33
Комментарии43

Как работает yield

Время на прочтение6 мин
Количество просмотров664K
На StackOverflow часто задают вопросы, подробно освещённые в документации. Ценность их в том, что на некоторые из них кто-нибудь даёт ответ, обладающий гораздо большей степенью ясности и наглядности, чем может себе позволить документация. Этот — один из них.

Вот исходный вопрос:
Как используется ключевое слово yield в Python? Что оно делает?

Например, я пытаюсь понять этот код (**):
def _get_child_candidates(self, distance, min_dist, max_dist):
    if self._leftchild and distance - max_dist < self._median:
        yield self._leftchild
    if self._rightchild and distance + max_dist >= self._median:
        yield self._rightchild

Вызывается он так:
result, candidates = list(), [self]
while candidates:
    node = candidates.pop()
    distance = node._get_dist(obj)
    if distance <= max_dist and distance >= min_dist:
        result.extend(node._values)
        candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
        return result


Что происходит при вызове метода _get_child_candidates? Возвращается список, какой-то элемент? Вызывается ли он снова? Когда последующие вызовы прекращаются?

** Код принадлежит Jochen Schulz (jrschulz), который написал отличную Python-библиотеку для метрических пространств. Вот ссылка на исходники: http://well-adjusted.de/~jrschulz/mspace/

Подробный и обстоятельный ответ
Всего голосов 141: ↑136 и ↓5+131
Комментарии41

Краткое введение в цепи Маркова

Время на прочтение16 мин
Количество просмотров189K
image

В 1998 году Лоуренс Пейдж, Сергей Брин, Раджив Мотвани и Терри Виноград опубликовали статью «The PageRank Citation Ranking: Bringing Order to the Web», в которой описали знаменитый теперь алгоритм PageRank, ставший фундаментом Google. Спустя чуть менее двух десятков лет Google стал гигантом, и даже несмотря на то, что его алгоритм сильно эволюционировал, PageRank по-прежнему является «символом» алгоритмов ранжирования Google (хотя только немногие люди могут действительно сказать, какой вес он сегодня занимает в алгоритме).

С теоретической точки зрения интересно заметить, что одна из стандартных интерпретаций алгоритма PageRank основывается на простом, но фундаментальном понятии цепей Маркова. Из статьи мы увидим, что цепи Маркова — это мощные инструменты стохастического моделирования, которые могут быть полезны любому эксперту по аналитическим данным (data scientist). В частности, мы ответим на такие базовые вопросы: что такое цепи Маркова, какими хорошими свойствами они обладают, и что с их помощью можно делать?
Читать дальше →
Всего голосов 51: ↑51 и ↓0+51
Комментарии11

Используйте __main__.py

Время на прочтение2 мин
Количество просмотров96K

Зачем нужен __init__.py знает, наверное, любой питонист, но что насчёт __main__.py? Я видел немало проектов либо рабочих, либо на Github, которые не используют этот магический файл, хотя могли бы сделать свою жизнь проще. На мой взгляд, __main__.py это лучший способ для взаимодействия с питоновскими модулями, состоящими из нескольких файлов.


Но давайте сначала разберёмся: как большинство людей запускают свои скрипты на Python?


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


if __name__ == '__main__':
    main(sys.argv)

Когда вы скармливаете скрипт интерпретатору, магическая глобальная переменная __name__ получает значение __main__. Таким образом мы узнаём, что это не импорт, а именно запуск. Например:


python myapp.py

И это прекрасно работает для одиночного файла.


Проблема


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


.
├── README.me
├── requirements.txt
├── setup.py
└── src
    ├── __init__.py
    ├── client.py
    ├── logic.py
    ├── models.py
    └── run.py

Но пользователю, который склонировал проект из репозитория будет непонятно — какой из этих файлов главный? Неужели run.py? А может client.py? Где же искать знакомую строку if __name__ == '__main__'? Вот здесь-то __main__.py и способен проявить себя.

Читать дальше →
Всего голосов 110: ↑106 и ↓4+102
Комментарии62

Метрики в задачах машинного обучения

Время на прочтение9 мин
Количество просмотров625K

Привет, Хабр!



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


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


Читать дальше →
Всего голосов 40: ↑39 и ↓1+38
Комментарии9

Математики обнаружили идеальный способ перемножения чисел

Время на прочтение5 мин
Количество просмотров143K

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



Четыре тысячи лет назад жители Вавилонии изобрели умножение. А в марте этого года математики усовершенствовали его.

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

«Все думают, что метод умножения, который они учили в школе, наилучший, но на самом деле в этой области идут активные исследования», — говорит Йорис ван дер Хувен, математик из Французского национального центра научных исследований, один из соавторов работы.
Читать дальше →
Всего голосов 183: ↑173 и ↓10+163
Комментарии224

Практическое использование D-Wave 2000Q: крутая кривая обучения квантовым вычислениям

Время на прочтение7 мин
Количество просмотров4.9K

Переосмыслить концепцию задачи тяжело, но результат стоит того




Примечание автора: я знаю, что неправильно вычислил перенос Брэгга как в классическом, так и в квантовом случае; однако, это достаточно близко к правде для того, чтобы понять разницу между программированием классического и квантового компьютера.

Время: где-то в 2018 году. Место: тухлый канал в Слаке.

«Ты знаешь Python?»

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

Оказывается, что D-Wave решила дать всему миру доступ к своему квантовому оптимизатору через API. Ars пригласили его опробовать, но нужно было знать Python. Я был готов на это.
Читать дальше →
Всего голосов 12: ↑8 и ↓4+4
Комментарии0

Мифы современной популярной физики

Время на прочтение5 мин
Количество просмотров121K
Где-то в альтернативной вселенной, согласно MWI, я стал гениальным физиком. Но в этой вселенной просто подробно слежу за профессиональными публикациями в области физики, зарабатывая себе на хлеб развозкой пиццы базами данных. Как следствие чуть более глубоких знаний, я не могу смотреть никаких научно-популярных передач. Это как железом по стеклу — тут oversimplification, тут просто неверно, тут есть тонкости…

Я решил сформировать список наиболее часто встречающихся неправд и полуправд. Итак, самое частое это…

Большой взрыв


Его изображают примерно так:


Читать дальше →
Всего голосов 310: ↑304 и ↓6+298
Комментарии561

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

Время на прочтение10 мин
Количество просмотров22K
image

Сейчас все очень много говорят про искусственный интеллект и его применение во всех сферах работы компании. Однако есть некоторые области, где еще с давних времён главенствует один вид модели, так называемый «белый ящик» — логистическая регрессия. Одна из таких областей – банковский кредитный скоринг.
Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии22

LSTM – сети долгой краткосрочной памяти

Время на прочтение8 мин
Количество просмотров208K

Рекуррентные нейронные сети


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

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

Решить эту проблемы помогают рекуррентые нейронные сети (Recurrent Neural Networks, RNN). Это сети, содержащие обратные связи и позволяющие сохранять информацию.
Читать дальше →
Всего голосов 41: ↑39 и ↓2+37
Комментарии4

10 курсов по машинному обучению на лето

Время на прочтение5 мин
Количество просмотров61K
За последние десятилетия с помощью машинного обучения создали самоуправляемые автомобили, системы распознавание речи и эффективный поиск. Сейчас это одна из самых быстроразвивающихся и перспективных сфер на стыке компьютерных наук и статистики, которая активно используется в искусственном интеллекте и data science. Методы машинного обучения используются в науке, технике, медицине, ритейле, рекламе, генерации мультимедиа и других областях.

Команда Университета ИТМО собрала десять курсов по машинному обучению, которые можно успеть пройти до конца лета. Одним они помогут войти в профессию, а другим — углубиться в нее.

image
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии7

Список ресурсов по машинному обучению. Часть 1

Время на прочтение3 мин
Количество просмотров30K


Ранее мы говорили о разработке системы квантовой связи и о том, как из простых студентов готовят продвинутых программистов. Сегодня мы решилие еще раз (1, 2) взглянуть в сторону темы машинного обучения и привести адаптированную (источник) подборку полезных материалов, обсуждавшихся на Stack Overflow и Stack Exchange.
Читать дальше →
Всего голосов 25: ↑24 и ↓1+23
Комментарии0

Mixture Density Networks

Время на прочтение12 мин
Количество просмотров13K

Всем привет!

Давайте поговорим о, как вы уже наверное смогли догадаться, нейронных сетях и машинном обучении. Из названия понятно, что будет рассказано о Mixture Density Networks, далее просто MDN, переводить название не хочу и оставлю как есть. Да, да, да… будет немного скучной математики и теории вероятности, но без неё, к сожалению, или к счастью, тут уж сами решайте, трудно представить мир машинного обучения. Но спешу вас успокоить, ее будет относительно мало и она будет не сильно сложная. Да и вообще ее можно будет пропустить, а просто посмотреть на небольшое количество кода на Python и PyTorch, все верно, сеть мы будем писать с помощью PyTorch, а так же на различные графики с результатами. Но самое главное то, что будет возможность немного разобраться и понять что же такое MD сети.

Что ж начнем!
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии9

О фракталах, мартингалах и случайных интегралах. Часть первая

Время на прочтение12 мин
Количество просмотров24K

На мой взгляд, стохастические исчисления — это один из тех великолепных разделов высшей математики (наряду с топологией и комплексным анализом), где формулы встречаются с поэзией; это место, где они обретают красоту, место где начинается простор для художественного творчества. Многие из тех, что прочли статью Винеровский хаос или Еще один способ подбросить монетку, даже если и мало, что поняли, всё же смогли оценить великолепие этой теории. Сегодня мы с вами продолжим наше математическое путешествие, мы погрузимся в мир случайных процессов, нетривиального интегрирования, финансовой математики и даже немного коснемся функционального программирования. Предупреждаю, держите наготове свои извилины, так как разговор у нас предстоит серьезный.
Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии5

Дорожная карта математических дисциплин для машинного обучения, часть 1

Время на прочтение6 мин
Количество просмотров94K

Вместо предисловия


Допустим, сидя вечерком в теплом кресле вам вдруг пришла в голову шальная мысль: «Хм, а почему бы мне вместо случайного подбора гиперпараметров модели не узнать, а почему оно всё работает?»
Читать дальше →
Всего голосов 40: ↑39 и ↓1+38
Комментарии42

5 книг, которые советует Билл Гейтс в 2018 году

Время на прочтение2 мин
Количество просмотров20K
Билл Гейтс регулярно делится в своем блоге впечатлениями о прочитанных книгах и советует те, что ему понравились. В начале декабря появилась новая запись:

Если вы любите на праздники дарить или получать книги, то вы похожи на меня. Хорошее чтиво – лучший подарок: вдумчивый и в упаковке (батарейки или сборка не требуются). Обычно я не забочусь о том, подходят ли в качестве подарка книги из списка, который я составляю к концу года, но в этом году подборка вполне подарочная.

Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии9

Einstein Telescope: детектор гравитационных волн нового поколения

Время на прочтение10 мин
Количество просмотров27K
Длиннее, мощнее, точнее — Европа собирается построить гравитационно-волновой детектор нового поколения под названием Einstein Telescope.


Einstein Telescope концепт-арт, credit: www.gwoptics.org

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

Я расскажу о том, что ограничивает LIGO, и как подземный криогенный детектор в 2,5 раза длиннее LIGO сможет обойти эти ограничения.
Внимание! Под катом много изображений.
Всего голосов 92: ↑91 и ↓1+90
Комментарии86

Через тернии к Haskell. 1/2

Время на прочтение25 мин
Количество просмотров223K


Первая часть короткого и жесткого введения в Haskell. Вторую часть можно найти здесь

tl;dr: Очень краткое и сжатое введение в Haskell.


UPD. Если туториал вам понравился, черкните пару строк автору оригинальной статьи. Человеку будет приятно ;)
Классные картинки, много текста и вынос мозга
Всего голосов 137: ↑133 и ↓4+129
Комментарии52

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность