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

Как я победил в конкурсе BigData от Beeline

Время на прочтение 7 мин
Количество просмотров 87K
Машинное обучение *
Из песочницы
image

Все уже много раз слышали про конкурс по машинному обучению от Билайн и даже читали статьи (раз, два). Теперь конкурс закончился, и так вышло, что первое место досталось мне. И хотя от предыдущих участников меня и отделяли всего сотые доли процента, я все же хотел бы рассказать, что же такого особенного сделал. На самом деле — ничего невероятного.
Читать дальше →
Всего голосов 100: ↑92 и ↓8 +84
Комментарии 32

Сборка XGBoost для Python под Windows

Время на прочтение 2 мин
Количество просмотров 26K
Python *Машинное обучение *
Из песочницы
Windows is so evil that consumes extra energy to make the things running.



Библиотека XGBoost гремит на всех соревнованиях по машинному обучению и помогает завоёвывать призовые места. Однако, стать обладателем этого пакета для Python под Windows не так просто.

Процесс установки скудно описан на GitHub и немногим шире на форуме Kaggle. Поэтому попробую описать пошагово и более подробно. Надеюсь это поможет сохранить много времени неопытным пользователям.
Читать дальше →
Всего голосов 12: ↑8 и ↓4 +4
Комментарии 8

Собираем XGBoost под OS X

Время на прочтение 3 мин
Количество просмотров 8.9K
Машинное обучение *
Из песочницы
XGBoost — С++ библиотека, реализующая методы градиентного бустинга, которую все чаще можно встретить в описаниях алгоритмов-победителей на Kaggle. Для использования из R или Python есть соответствующие обвязки, но саму библиотеку необходимо собрать из исходников. Запустив make, я увидел массу ошибок, сообщающих о ненайденных хидерах и неподдерживаемом OpenMP. Ну, не впервой.
Читать дальше →
Всего голосов 17: ↑14 и ↓3 +11
Комментарии 2

Как программист машину покупал. Часть II

Время на прочтение 11 мин
Количество просмотров 39K
Программирование *Data Mining *Алгоритмы *R *Машинное обучение *
В предыдущей статье на примере покупки Mercedes-Benz E-klasse не старше 2010 года выпуска стоимостью до 1.5 млн рублей в Москве была рассмотрена задача поиска выгодных автомобилей. Под выгодными следует понимать предложения, цена которых ниже рыночной в текущий момент среди объявлений, собранных со всех наиболее авторитетных сайтов по продаже б/у автомобилей в РФ.

На первом этапе в качестве метода машинного обучения была выбрана множественная линейная регрессия, были рассмотрены правомерность ее использования, а также плюсы и минусы. Простая линейная регрессия была выбрана в качестве ознакомительного алгоритма. Очевидно, что существует еще много методов машинного обучения для решения поставленной задачи регрессии. В этой статье я хотел бы рассказать вам, как именно я выбирал наиболее оптимальный алгоритм машинного обучения для исследуемой модели, который в настоящее время используется в реализованном мною сервисе — robasta.ru.


Читать дальше →
Всего голосов 67: ↑54 и ↓13 +41
Комментарии 48

Спортивный анализ данных, или как стать специалистом по data science

Время на прочтение 17 мин
Количество просмотров 59K
Блог компании Яндекс Спортивное программирование *Data Mining *Big Data *Машинное обучение *
Меня зовут Пётр Ромов, я — data scientist в Yandex Data Factory. В этом посте я предложу сравнительно простой и надежный способ начать карьеру аналитика данных.

Многие из вас наверняка знают или хотя бы слышали про Kaggle. Для тех, кто не слышал: Kaggle — это площадка, на которой компании проводят конкурсы по созданию прогнозирующих моделей. Её популярность столь велика, что часто под «кэглами» специалисты понимают сами конкурсы. Победитель каждого соревнования определяется автоматически — по метрике, которую назначил организатор. Среди прочих, Kaggle в разное время опробовали Facebook, Microsoft и нынешний владелец площадки — Google. Яндекс тоже несколько раз отметился. Как правило, Kaggle-сообществу дают решать задачи, довольно близкие к реальным: это, с одной стороны, делает конкурс интересным, а с другой — продвигает компанию как работодателя с солидными задачами. Впрочем, если вам скажут, что компания-организатор конкурса задействовала в своём сервисе алгоритм одного из победителей, — не верьте. Обычно решения из топа слишком сложны и недостаточно производительны, а погони за тысячными долями значения метрики не настолько и нужны на практике. Поэтому организаторов больше интересуют подходы и идейная часть алгоритмов.



Kaggle — не единственная площадка с соревнованиями по анализу данных. Существуют и другие: DrivenData, DataScience.net, CodaLab. Кроме того, конкурсы проводятся в рамках научных конференций, связанных с машинным обучением: SIGKDD, RecSys, CIKM.

Для успешного решения нужно, с одной стороны, изучить теорию, а с другой — начать практиковать использование различных подходов и моделей. Другими словами, участие в «кэглах» вполне способно сделать из вас аналитика данных. Вопрос — как научиться в них участвовать?
Хардкор
Всего голосов 71: ↑66 и ↓5 +61
Комментарии 13

Яндекс открывает технологию машинного обучения CatBoost

Время на прочтение 6 мин
Количество просмотров 100K
Блог компании Яндекс Поисковые технологии *Open source *Python *Машинное обучение *
Сегодня Яндекс выложил в open source собственную библиотеку CatBoost, разработанную с учетом многолетнего опыта компании в области машинного обучения. С ее помощью можно эффективно обучать модели на разнородных данных, в том числе таких, которые трудно представить в виде чисел (например, виды облаков или категории товаров). Исходный код, документация, бенчмарки и необходимые инструменты уже опубликованы на GitHub под лицензией Apache 2.0.



CatBoost – это новый метод машинного обучения, основанный на градиентном бустинге. Он внедряется в Яндексе для решения задач ранжирования, предсказания и построения рекомендаций. Более того, он уже применяется в рамках сотрудничества с Европейской организацией по ядерным исследованиям (CERN) и промышленными клиентами Yandex Data Factory. Так чем же CatBoost отличается от других открытых аналогов? Почему бустинг, а не метод нейронных сетей? Как эта технология связана с уже известным Матрикснетом? И причем здесь котики? Сегодня мы ответим на все эти вопросы.

Всего голосов 216: ↑215 и ↓1 +214
Комментарии 128

Построение рекомендаций для сайта вакансий. Лекция в Яндексе

Время на прочтение 17 мин
Количество просмотров 5.6K
Блог компании Яндекс Ненормальное программирование *Спортивное программирование *Алгоритмы *Машинное обучение *
В последнее время мы много пишем о конкурсах по машинному обучению, в основном рассматривая их с точки зрения участников. Но организовать и правильно провести соревнование — тоже сложная задача. Компании учатся на своих ошибках и в следующие разы меняют структуру конкурсов. Например, RecSys Challenge 2017 с учётом опыта прошлых лет провели в два последовательных этапа. Андрей Остапец из компании Avito рассказывает об этих этапах, о различных признаках, основанных на истории поведения пользователей, и о том, всегда ли нужно использовать сложные модели для решения задачи. Команда Андрея заняла в RecSys Challenge седьмое место.


Всего голосов 38: ↑37 и ↓1 +36
Комментарии 0

Как мы учим ИИ помогать находить сотрудников

Время на прочтение 8 мин
Количество просмотров 6.3K
Блог компании SuperJob Программирование *Машинное обучение *
Ведущий разработчик SuperJob Сергей Сайгушкин рассказывает о подготовке данных и обучении модели скоринга резюме, внедрении в продакшн, мониторинге метрик качества и АБ-тестировании функционала скоринга резюме.

Статья подготовлена по материалам доклада на РИТ 2017 «Ранжирование откликов соискателей с помощью машинного обучения».

Всего голосов 13: ↑11 и ↓2 +9
Комментарии 4

Создатель Open Data Science о Slack, xgboost и GPU

Время на прочтение 8 мин
Количество просмотров 22K
Блог компании JUG Ru Group Big Data *Открытые данные *Машинное обучение *
Сообщество Open Data Science (ODS) уже известно на Хабре по открытому курсу машинного обучения (OpenML). Сегодня мы поговорим с его создателем об истории ODS, людях и наиболее популярных методах машинного обучения (по версии Кaggle и проектам индустрии). За интересными фактами и технической экспертизой — прошу под кат.



Читать дальше →
Всего голосов 53: ↑49 и ↓4 +45
Комментарии 5

Классификация на гуманитариев и технарей по комментариям в VK

Время на прочтение 11 мин
Количество просмотров 30K
Python *Data Mining *Визуализация данных *Машинное обучение *

Привет, хабр! Хочу поделиться своим опытом классификации пользователей социальной сети по их комментариям на два класса по складу ума: гуманитарный или технический. В данной статье не будут использоваться последние достижения глубокого обучения, но будет разобран завершенный проект по классификации текстов: от поиска подходящих данных до предсказаний. В конце будет представлено веб-приложение, в котором вы сможете проверить себя.


Читать дальше →
Всего голосов 40: ↑32 и ↓8 +24
Комментарии 66

30-часовой хакатон Яндекс.Погоды, или как предсказать осадки по сигналам от пользователей

Время на прочтение 7 мин
Количество просмотров 6.3K
Блог компании Яндекс Спортивное программирование *Хакатоны Машинное обучение *
Недавно мы провели хакатон, посвящённый использованию сигналов от пользователей в предсказании погоды. Сегодня я расскажу, почему устроить такое соревнование — едва ли не более сложная задача, чем удачно в нём выступить, какие методы за 30 часов успели придумать участники, и как мы используем результаты хакатона.



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

Всего голосов 37: ↑37 и ↓0 +37
Комментарии 9

Применение моделей CatBoost внутри ClickHouse. Лекция Яндекса

Время на прочтение 8 мин
Количество просмотров 13K
Блог компании Яндекс Open source *Промышленное программирование *Машинное обучение *
В каких ситуациях удобно применять предобученные модели машинного обучения внутри ClickHouse? Почему для такой задачи лучше всего подходит метод CatBoost? Не так давно мы провели встречу, посвящённую одновременному использованию этих двух опенсорс-технологий. На встрече выступил разработчик Николай Кочетов — его лекцией мы и решили с вами поделиться. Николай разбирает описанную задачу на примере алгоритма предсказания вероятности покупки.


— Сначала о том, как устроен ClickHouse. ClickHouse — это аналитическая распределенная СУБД. Она столбцовая и с открытым исходным кодом. Самое интересное слово здесь — «столбцовая». Что оно значит?
Всего голосов 26: ↑25 и ↓1 +24
Комментарии 6

Прогнозирование продаж недвижимости. Лекция в Яндексе

Время на прочтение 5 мин
Количество просмотров 6.1K
Блог компании Яндекс Спортивное программирование *Машинное обучение *
Успех в проектах по машинному обучению обычно связан не только с умением применять разные библиотеки, но и с пониманием той области, откуда взяты данные. Отличной иллюстрацией этого тезиса стало решение, предложенное командой Алексея Каюченко, Сергея Белова, Александра Дроботова и Алексея Смирнова в конкурсе PIK Digital Day. Они заняли второе место, а спустя пару недель рассказали о своём участии и построенных моделях на очередной ML-тренировке Яндекса.


Алексей Каюченко:
— Добрый день! Мы расскажем о соревновании PIK Digital Day, в котором мы участвовали. Немного о команде. Нас было четыре человека. Все с абсолютно разным бэкграундом, из разных областей. На самом деле, мы на финале познакомились. Команда сформировалась буквально за день до финала. Я расскажу про ход конкурса, организацию работы. Потом выйдет Сережа, он расскажет про данные, а Саша расскажет уже про сабмишен, про финальный ход работы и про то, как мы двигались по лидерборду.

Всего голосов 26: ↑24 и ↓2 +22
Комментарии 0

Динамическое ценообразование на основе LSTM — ANN в ретейле товаров для дома

Время на прочтение 10 мин
Количество просмотров 11K
Python *Машинное обучение *
Из песочницы
Не секрет, что методы машинного обучения стали повсеместно проникать в различные сферы бизнеса, оптимизируя, совершенствуя и даже создавая новые бизнес процессы. Одна из важных областей — это вопрос установления цены на товар и здесь, при достаточном количестве данных, МО помогает сделать то, что раньше было трудно достижимо – восстановить многофакторную кривую спроса из данных. Благодаря восстановленной кривой спроса стало возможным построить динамические системы ценообразования, которые позволяют провести оптимизацию цены в зависимости от цели ценообразования – увеличить выручку или прибыль. Данная статья представляет собой компиляцию моей диссертационной работы, в которой была разработана и опробована на практике в течении 4 недель модель динамического ценообразования LSTM-ANN для одного из товаров ретейлера товаров для дома.
Читать дальше →
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 6

Что внутри XGBoost, и при чем здесь Go

Время на прочтение 7 мин
Количество просмотров 13K
C++ *Go *Машинное обучение *
В мире машинного обучения одними из самых популярных типов моделей являются решающее дерево и ансамбли на их основе. Преимуществами деревьев являются: простота интерпретации, нет ограничений на вид исходной зависимости, мягкие требования к размеру выборки. Деревья имеют и крупный недостаток — склонность к переобучению. Поэтому почти всегда деревья объединяют в ансамбли: случайный лес, градиентный бустинг и др. Сложными теоретическими и практическим задачами являются составление деревьев и объединение их в ансамбли.

В данной же статье будут рассмотрены процедура формирования предсказаний по уже обученной модели ансамбля деревьев, особенности реализаций в популярных библиотеках градиентного бустинга XGBoost и LightGBM. А так же читатель познакомится с библиотекой leaves для Go, которая позволяет делать предсказания для ансамблей деревьев, не используя при этом C API оригинальных библиотек.
Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 0

Пишем XGBoost с нуля — часть 2: градиентный бустинг

Время на прочтение 13 мин
Количество просмотров 26K
Блог компании VK Python *Data Mining *Алгоритмы *Машинное обучение *
Туториал

Всем привет!

В прошлой статье мы разбирались, как устроены решающие деревья, и с нуля реализовали
алгоритм построения, попутно оптимизируя и улучшая его. В этой статье мы реализуем алгоритм градиентного бустинга и в конце создадим свой собственный XGBoost. Повествование будет идти по той же схеме: пишем алгоритм, описываем его, в заверешение подводим итоги, сравнивая результаты работы с аналогами из Sklearn'а.

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


Итак, поехали!
Всего голосов 58: ↑57 и ↓1 +56
Комментарии 3

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

Время на прочтение 11 мин
Количество просмотров 14K
Блог компании Ростелеком Хакатоны Машинное обучение *Искусственный интеллект
Иногда для того, чтобы решить какую-то проблему, надо просто взглянуть на нее под другим углом. Даже если последние лет 10 подобные проблемы решали одним и тем же способом с разным эффектом, не факт, что этот способ единственный.

Есть такая тема, как отток клиентов. Штука неизбежная, потому что клиенты любой компании могут по множеству причин взять и перестать пользоваться ее продуктами или сервисами. Само собой, для компании отток — хоть и естественное, но не самое желаемое действие, поэтому все стараются этот отток минимизировать. А еще лучше — предсказывать вероятность оттока той или иной категории пользователей, или конкретного пользователя, и предлагать какие-то шаги по удержанию.

Анализировать и пытаться удержать клиента, если это возможно, нужно, как минимум, по следующим причинам:

  • привлечение новых клиентов дороже процедур удержания. На привлечение новых клиентов, как правило, нужно потратить определенные деньги (реклама), в то время как существующих клиентов можно активизировать специальным предложением с особыми условиями;
  • понимание причин ухода клиентов — ключ к улучшению продуктов и услуг.

Существуют стандартные подходы к прогнозированию оттока. Но на одном из чемпионатов по ИИ мы решили взять и попробовать для этого распределение Вейбулла. Чаще всего его используют для анализа выживаемости, прогнозирования погоды, анализа стихийных бедствий, в промышленной инженерии и подобном. Распределение Вейбулла — специальная функция распределения, параметризуемая двумя параметрами $λ$ и $k$.


Википедия

В общем, вещь занятная, но для прогнозирования оттока, да и вообще в финтехе, использующаяся не так, чтобы часто. Под катом расскажем, как мы (Лаборатория интеллектуального анализа данных) это сделали, попутно завоевав золото на Чемпионате по искусственному интеллекту в номинации «AI в банках».
Читать дальше →
Всего голосов 19: ↑17 и ↓2 +15
Комментарии 0

Рекомендации в Okko: как заработать сотни миллионов, перемножив пару матриц

Время на прочтение 20 мин
Количество просмотров 32K
Блог компании Okko Python *Алгоритмы *Машинное обучение *Искусственный интеллект

Rekko — персональные рекомендации в онлайн-кинотеатре Okko


Знакома ли вам ситуация, когда на выбор фильма вы тратите гигантское количество времени, сопоставимое со временем самого просмотра? Для пользователей онлайн-кинотеатров это частая проблема, а для самих кинотеатров — упущенная прибыль.


К счастью, у нас есть Rekko — система персональных рекомендаций, которая уже год успешно помогает пользователям Okko выбирать фильмы и сериалы из более чем десяти тысяч единиц контента. В статье я расскажу вам как она устроена с алгоритмической и технической точек зрения, как мы подходим к её разработке и как оцениваем результаты. Ну и про сами результаты годового A/B теста тоже расскажу.

Рекомендую вам прочитать эту статью
Всего голосов 70: ↑61 и ↓9 +52
Комментарии 31

Жизненный цикл ML в боевых условиях

Время на прочтение 16 мин
Количество просмотров 12K
Блог компании Конференции Олега Бунина (Онтико) Высокая производительность *Программирование *Анализ и проектирование систем *Машинное обучение *
В реальном внедрении ML само обучение занимает от силы четверть усилий. Остальные три четверти — подготовка данных через боль и бюрократию, сложный деплой часто в закрытом контуре без доступа в интернет, настройка инфраструктуры, тестирование и мониторинг. Документы на сотни листов, ручной режим, конфликты версий моделей, open source и суровый enterprise — все это ждет data scientist’а. Но такие «скучные» вопросы эксплуатации ему не интересны, он хочет разработать алгоритм, добиться высокого качества, отдать и больше не вспоминать.

Возможно, где-то ML внедряется легче, проще, быстрее и одной кнопкой, но мы таких примеров не видели. Все, что выше — опыт компании Front Tier в финтехе и телекоме. О нем на HighLoad++ рассказал Сергей Виноградов — эксперт в архитектуре высоконагруженных систем, в больших хранилищах и тяжелом анализе данных.


Всего голосов 21: ↑19 и ↓2 +17
Комментарии 2

Распределенное обучение XGBoost и параллельное прогнозирование с Apache Spark

Время на прочтение 5 мин
Количество просмотров 3.5K
Блог компании OTUS Apache *Big Data *Машинное обучение *
Перевод
Привет, Хабр! Уже в конце июля Otus запускает новый курс «Промышленный ML на больших данных». Традиционно, в преддверии старта нового курса, мы подготовили для вас перевод полезного материала.




Общие сведения


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



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

Слабые обучающие алгоритмы, созданные при градиентном бустинге во время обучения, обычно реализуются в виде деревьев решений. Самое неэффективное в градиентном бустинге – это последовательный процесс создания деревьев, поскольку в таком случае создается всего одно дерево за раз.

Чтобы обойти это ограничение Тяньцзи Ченом и Карлосом Гестрином было предложено улучшение алгоритма градиентного бустинга, которое называется XGBoost, что расшифровывается как Extreme Gradient Boosting или экстремальный градиентный бустинг. Это своего рода градиентный бустинг на стероидах, который используется в основном для классификации, но также порой для регрессии и ранжирования.
Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 0
1