Рубрика «data science»

Я много лет работал Data Engineer'ом и Data Scientist'ом, решал сложные бизнес-кейсы, строил большие системы, выводил это все в продакшен. В начале 2017го я бросил пить, курить и работать в офисе и ушел фрилансить, экспериментировать с альтернативными формами занятости. Довольно много времени я провел на Upwork. Судя по многочисленным комментариям, уважаемая аудитория не до конца представляет себе, что это такое. Вещаю.

Upwork это крупнейшая в мире биржа фриланса. Дата сатанисты и дата инженеры мало кому в этом мире нужны (по сравнению с переводчиками, веб-мастерами и переписывателями текстов), так что задач для нас относительно мало, так что они тяготеют к крупнейшей бирже в мире. Других фриланс-бирж с постоянным потоком задач для дата саентистов в мире нет — ни Guru, ни Toptal, ни отечественный fl.ru спросом похвастаться не могут. Что важно — для специалистов более массовых специальностей опыт фриланса может сильно отличаться.Читать полностью »

14-15 июля Почта Mail.Ru провела свой второй хакатон SmartMail Hack 2: Call of Data. Участникам нужно было разработать новое, интересное и полезное решение для представления данных из Почты. И по горячим следам спешим рассказать о победивших на хакатоне проектах.

Зов Даты, или Как прошел второй хакатон Почты Mail.Ru - 1
Читать полностью »

Секретные материалы

В 2014-м году я присоединился к небольшой команде в Schibsted Media Group в качестве 6-го специалиста по Data Science в этой компании. С тех пор я поработал над многими начинаниями в области Data Science в организации, в которой теперь таких уже 40 с лишним человек. В этом посте я расскажу о некоторых вещах, о которых узнал за последние четыре года, сперва как специалист, а затем как менеджер Data Science.

Этот пост следует примеру Robert Chang и его отличной статьи «Doing Data Science in Twitter», которую я нашел очень ценной, когда впервые прочитал ее в 2015-м году. Цель моего собственного вклада ― поведать настолько же полезные мысли специалистам и менеджерам Data Science по всему миру.

Я поделил пост на две части:

  • Часть I: Data Science в реальной жизни
  • Часть II: Управление командой Data Science

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

Хабровчане, привет! На связи главред блога Нетологии. 18 июля у нас пройдет день открытых дверей курса Data Science. Мероприятие офлайновое, но будет трансляция для всех желающих.

Программа:

19:00 — О курсе Data Scientist: программа, эксперты, форматы обучения и дипломный проект / продюсер курса Настя Дорожкина, Нетология.
19:25 — Обработка данных на Python с использованием pandas: разбор кейсов и построение простой модели / преподаватель курса Константин Башевой, Яндекс.Читать полностью »

Предисловие

На просторах интернета имеется множество туториалов объясняющих принцип работы LDA(Latent Dirichlet Allocation — Латентное размещение Дирихле) и то, как применять его на практике. Примеры обучения LDA часто демонстрируются на "образцовых" датасетах, например "20 newsgroups dataset", который есть в sklearn.

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

  • Много выбросов.
  • Неправильная разметка(если она есть).
  • Очень сильные дисбалансы классов и 'некрасивые' распределения каких-либо параметров датасета.
  • Для текстов, это: грамматические ошибки, огромное кол-во редких и уникальных слов, многоязычность.
  • Неудобный способ харнения данных(разные или редкие форматы, необходимость парсинга)

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

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

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

Её основной недостаток заключается в том, что она учитывает только факт турнирного достижения без учёта "сложности" матчей. Такого недостатка лишена модель Эло, которая следит за "силой" игроков и обновляет её в зависимости от результатов матчей и "силы" соперника. Однако, и она подходит не идеально: считается, что все матчи проходят в равных условиях, а в снукере они играются до определённого количества выигранных фреймов (партий). Для учёта этого факта, я рассмотрел другую модель, которую назвал ЭлоБета.

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

Модели Эло и ЭлоБета в снукере - 1

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

Комментарии в последней публикации «Насколько open-source экосистема R хороша для решения бизнес-задач?» насчет выгрузок в Excel привели к мысли, что имеет смысл потратить время и описать один из апробированных возможных подходов, который можно реализовать не выходя из R.

Ситуация достаточно типична. В компании всегда есть N методик по которым менеджеры вручную стараются строить в Excel отчеты. Даже если их и втоматизировать всегда остается ситуация, когда нужно срочно сделать какой-то новый произвольный срез или сделать представление для какого-либо руководителя в специфическом виде.

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

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

Является продолжением предыдущих публикаций.Читать полностью »

Поводом для публикации послужила запись в блоге Rstudio: «Shiny 1.1.0: Scaling Shiny with async», которая может очень легко пройти мимо, но которая добавляет очень весомый кирпичик в задаче применения R для задач бизнеса. На самом деле, в dev версии shiny асинхронность появилась примерно год назад, но это было как бы несерьезно и «понарошку» — это же dev версия. Перенос в основную ветку и публикация на CRAN является важным подтверждением, что многие принципиальные вопросы продуманы, решены и протестированы, можно спокойно переносить в продуктив и пользоваться.

А что еще есть в R, кроме «бриллианта», что позволяет превратить его в универсальный аналитический инструмент для практических задач?

Является продолжением предыдущих публикаций.Читать полностью »

Второй блин: анонс SmartData 2018 - 1

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

В прошлом году мы впервые провели конференцию SmartData, а теперь пришло время «второго раза»: анонсируем SmartData 2018, которая состоится 15 октября в Санкт-Петербурге.

Чего ждать от конференции? Кому стоит на неё идти? Что изменилось по сравнению с прошлым годом? Рассказываем обо всём под катом.
Читать полностью »

Тем, кто работает с R, хорошо известно, что изначально язык разрабатывался как инструмент для интерактивной работы. Естественно, что методы удобные для консольного пошагового применения человеком, который глубоко в теме, оказываются малопригодными для создания приложения для конечного пользователя. Возможность получить развернутую диагностику сразу по факту ошибки, проглядеть все переменные и трейсы, выполнить вручную элементы кода (возможно, частично изменив переменные) — все это будет недоступно при автономной работе R приложения в enterprise среде. (говорим R, подразумеваем, в основном, Shiny web приложения).

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

Является продолжением предыдущих публикаций.Читать полностью »