Pull to refresh
58
Karma
0
Rating
Илья Шутов @i_shutov

Data Science

Важно ли DS аналитику знать про software development?

Python *Data Mining *R *Development Management *
⚒️ Data Mining season


— Иван Иваныч Иванов с утра ходит без штанов!
— А Иванов Иван Иваныч одевает штаны на ночь!
«Афоня» (1975)


Множество курсов, призванных подготовить DS специалистов «за полгода», создают впечатление, что уж сертифицированным датамайнером стать достаточно просто. А что? Немного основ DS языка, немного по структуре данных, немного по различным преобразованиям данных, немного SQL, немного математики (в ML не погружаемся, только знакомимся), немного визуализации, немного HTML+JS+CSS. Специалист готов?


На практике оказывается, что маловато будет.


Все предыдущие публикации.

Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Views 2.7K
Comments 2

Jira, Jirа! Повернись к лесу задом, ко мне передом

Python *Data Mining *API *R *Development Management *
⚒️ Data Mining season

*Избушка, Olga Kolopetko. https://illustrators.ru/illustrations/1474142)*
Избушка, Olga Kolopetko. https://illustrators.ru/illustrations/1474142


Повсеместная цифровизация не только в телевизоре. Она теперь повсюду нас окружает, на работе и не только. Типичным представителем являются трекеры действий (системы Сервис Деск, проектные системы, документообороты и пр.). Общей болевой точкой всех этих систем являются сложная объектная и процессная модель и фокус на поддержку операционного обслуживания. Шаг влево или вправо в попытках понять всю картину целиком повергает аналитиков в уныние и порождает безуспешные проекты на многие месяцы. А вопрос этот висит в воздухе, в том или ином виде, почти ежедневно.


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


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


Все предыдущие публикации.

Читать дальше →
Total votes 10: ↑8 and ↓2 +6
Views 8.4K
Comments 11

Круглое катить, прямоугольное тащить. А шестигранник?

Python *Programming *R *Data visualization *


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


Но далеко не все задачи сводятся к data.frame и не обязательно весь DS сводить к ML. Есть масса задач, оперирующих, например, с графами или их частным случаем — деревьями. Можно использовать библиотеку igraph или аналоги и не думать о деталях. А можно попробовать чуть заглянуть внутрь алгоритмов.


На примере одной задачки посмотрим на работу с деревьями с альтернативной колокольни.


Все предыдущие публикации.

Читать дальше →
Total votes 4: ↑3 and ↓1 +2
Views 4.6K
Comments 3

Data Science как макетная плата в enterprise задачах

Python *System Analysis and Design *Data Mining *R *Project management *

*Про черепаху. Весёлая карусель №11 1980 © (реж. А. Петров)*
Про черепаху. Весёлая карусель №11 1980 © (реж. А. Петров)


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


Степень автоматизации и цифровизации в современных компаниях достаточно велика. Фактически, можно говорить о двух плоскостях: плоскость материальных процессов и объектов (машины, каналы, вышки, вагоны, печи, ...) и плоскость цифровых потоков. Различные мобильные приложения, без ограничения общности, для пользователей мы можем рассматривать как «удлинитель» до материальных процессов. Для обеспечения качества и непрерывности материальных процессов необходимо обеспечивать полноту и актуальность соответствующих цифровых потоков, а также оперативно отвечать на вопросы, возникающие у представителей бизнеса.


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


Проведение аналогий с радиоэлектроникой позволяет найти неплохое решение.


Все предыдущие публикации.

Читать дальше →
Total votes 1: ↑1 and ↓0 +1
Views 1.6K
Comments 0

Сателлит «R Markdown» — что на обратной стороне?

Python *Programming *Data Mining *R *Development Management *

*Обратная сторона луны*


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


R Markdown прочно вошел в инструментальный стек R и воспринимается как базовый компонент. Однако, применительно к R Markdown практически все осуществляют такой же промах. Связка «R Markdown — это html отчет» формируется на первом шаге и дальше именно так и применятся. Реальность несколько многообразнее.


Все предыдущие публикации.

Читать дальше →
Total votes 2: ↑2 and ↓0 +2
Views 1.8K
Comments 8

Кто за всех решил, что python удобен для «гражданской» аналитики?

Python *Data Mining *R *

*«Гарри Поттер и философский камень», (2001)*
«Гарри Поттер и философский камень», (2001)


ИТ-шником (программистом) нынче быть привлекательно. Дата саентистом тоже неплохо. Создаются и множатся курсы. Только вот они все однобокие. Несмотря на большое количество языков, большое количество технологий и алгоритмов, несмотря на весь накопленный в ИТ области багаж, 99% датасаенс курсов строятся по пути python-pandas.


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


Вся аргументация «за питон» строится исключительно по принципу «не думать», «рука рынка, «ну у нас же уже есть в проде 10 строк кода на питоне, что же делать?». Хотя элементарные технологические тесты и оценка экономической эффективности частенько дают неопровержимые доказательства, что DS питон является безответным поглотителем доли ИТ бюджета компаний. Взглянем ниже более пристально на отдельные моменты.


Все предыдущие публикации.

Читать дальше →
Total votes 64: ↑48 and ↓16 +32
Views 31K
Comments 238

Разработчики и колпак

Python *Data Mining *R *Development Management *DevOps *

*«You Only Live Twice», (1967)*
«You Only Live Twice», (1967)


Развитие микроэлектроники, ИТ технологий и широкого спектра программных продуктов открыло новые возможности по контролю всего. Датчики, камеры, цифровые следы… Магнитофон в чемодане уже неактуален.


Разработчики пишут, а компании внедряют различные системы для мониторинга эффективности работы сотрудников. Казалось бы, в зоне опасности банковские операционисты, кассиры, сотрудники колл-центров и т.д, а разработчики на коне.
По факту оказывается, что разработчики могут находиться под куда более жестким контролем.
Как же так???


Все предыдущие публикации.

Читать дальше →
Total votes 10: ↑5 and ↓5 0
Views 5K
Comments 26

Дата саентист и циклы-циклы-циклы…

Open source *Python *Data Mining *Mathematics *R *


«How I Met Your Mother», season 6, ep. 7


Коля любит циклы. 
Толя любит циклы. 
Оля любит циклы. 
Все любят циклы. 

И Сережа тоже.

Один Мамба их не любит. И вот почему.


Если опустить философские рассуждения, что все на уровне процессора является циклом или goto, то можно выделить три причины:


  1. При работе с индексами цикла можно легко проглядеть и допустить ошибку. Но тут помощь приходят итераторы.
  2. Очень часто циклы вручную пишутся очень неэффективно с точки зрения манипуляций с памятью — сильная просадка по производительности. А у вложенных циклов еще и накладные на старт цикла.
  3. Нелинейная структура цикла (break, continue) не позволяют сделать хорошую оптимизацию на уровне процессора или компилятора. А это дополнительно означает, что распараллелить цикл по вычислителям будет очень трудно. В решении этого вопроса помогает функциональный подход и итераторы. Если известно о независимости вычислений значений каждого отдельного шага — надо сообщать об этом компилятору явно.

Все предыдущие публикации.

Читать дальше →
Total votes 7: ↑5 and ↓2 +3
Views 3.9K
Comments 14

Data Science — это не только подсчет пельменей…

Information Security *Python *IT Infrastructure *Data Mining *R *


Пока идут разговоры про отъезд ИТ специалистов, про их возврат, про поддержку ИТ компаний, а неофиты pandas восторженно разбирают json, есть предложение посмотреть на роль data science инструментов в современной ИТ инфраструктуре немного с другой точки зрения. DS — это ведь не только подсчет пельменей, накликивание мышкой графиков-пирожков или создание N+1 системы по рекомендации фильмов из вселенной Марвел.


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

Читать дальше →
Total votes 2: ↑2 and ↓0 +2
Views 7.9K
Comments 4

Без «Табла» и жизнь не та…

Open source *Python *Data Mining *R *Data visualization *


— Для некоторых людей одиночество и оторванность от мира могут стать проблемой.
— Только не для меня.

Кадр из фильма «The Shining», 1980 г.


В рядах аналитиков началась тихая паника. Заплатить в Google BigQuery в облачном варианте сейчас невозможно без иностранной банковской карты, Tableau и Microsoft «приостанавливают» свою активность в РФ, многие вендоры ушли, многие в низком старте.
Появляются материалы с вопросами «Пора менять Tableau, Power BI, Qlik? Как выбрать российский BI? Или не российский? Или не BI?» которые даже неприлично было задавать пару месяцев назад.


Но это прекрасный момент остановить ковейерное тиражирование шаблонов, выдохнуть и подумать «А что нам реально надо то?». И тут все становится не совсем очевидно.


Дальше картинок мало (0), по большей части текст и ссылки.

Читать дальше →
Total votes 10: ↑7 and ↓3 +4
Views 6K
Comments 12

Новая Rеальность

Python *Data Mining *R *


Анекдот


Буквально за неделю ИТ ландшафт изменился до неузнаваемости. Каждый день появляются новости об уходе или «приостановке работы» той или иной международной ИТ компании. Одномоментно кончились серверные мощности. И если кто-то прикупил с запасом (что делали достаточно редко), то тот оказался молодцом. Стиль работы надо экстренно и радикально менять. Если раньше можно было полгода играть в RFI, потом полгода в RFP, потом полгода бюджетировать, то теперь все схлопнулось до «одного дня» и не на кого возложить ответственность, вендоры исчезли.


Ситуация стабилизируется, но время стабилизации и новая конфигурация пока неизвестны. Очевидно, что новая конфигурация будет отличаться от той, что была последние лет 10-20.

Читать дальше →
Total votes 111: ↑47 and ↓64 -17
Views 83K
Comments 261

Неравный join

Python *Data Mining *Big Data *R *


«Неравный брак», В. Пукирев, 1862 г.


Задача объединения табличных представлений очень часто встречается как в аналитике, так и в разработке (БД). Существует несколько различных типов слияний, фактически, это операции над множествами. Не будем погружаться в детали, на эту тему написано множество книг, семинаров, публикаций. Посмотрим на эти механизмы в преломлении практических задач. Будем смотреть по нарастающей сложности и пытаться решить их на «офисном» ноутбуке, не привлекая бесконечные мощности больших данных или реляционные БД.


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

Читать дальше →
Total votes 8: ↑7 and ↓1 +6
Views 5.5K
Comments 3

Лущим веб с помощью R

Python *Data Mining *R *


Кадр из мультфильма «Раз горох, два горох», 1981, Союзмультфильм


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


Ниже три непридуманные истории, объединенные одной целью — достать информацию из открытого источника. Весь код написан «на салфетке», имеет сугубо иллюстративный и развлекательный характер.


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

Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Views 4.2K
Comments 4

Рефакторинг Shiny приложений

Data Mining *Designing and refactoring *R *


Кадр из фильма «Формула любви», 1984


В жизненном цикле любого эксплуатируемого ПО наступает фаза, когда накопившийся набор изменений (CR) ложится неподъемным грузом на первичную архитектуру и вот тут наступает пора рефакторинга. Много книг понаписано на эту тему, есть специфика для различных языков. Ниже затронем только отдельные аспекты, которые могут оказаться полезным применительно к RStudio Shiny приложениям. Это ряд практических методов, трюков и нюансов, накопившихся при рефакторинге, как правило, чужого Shiny кода.


«Aliena nobis, nostra aliis» — Ежели один человек построил, другой завсегда разобрать сможет.


Это было в фильме, в первоисточнике несколько по-другому. Фраза Публилия Сира «Aliena nobis, nostra plus aliis placent» переводится как «Чужое нам, наше же в основном другим нравится».
Но кузнец Степан все равно дело говорит.


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

Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Views 1.6K
Comments 0

О бедном бите замолвите слово

Python *Data Mining *Big Data *R *


Н. Кобринский, В. Пекелис «Быстрее мысли» — Молодая гвардия, 1959


Когда все вокруг измеряют Гигабайтами, Петабайтами, Зетабайтами и т.д., все компании гордятся своей БигДатой, вспоминать о битах в приличном обществе воспринимается как моветон. Однако и биты иногда бывают полезны. Темой для разговора послужила одна типовая классическая задачка, лежащая в области опросов.


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

Читать дальше →
Total votes 9: ↑8 and ↓1 +7
Views 4.6K
Comments 29

Забираем большие маленькие данные по REST API

Python *Data Mining *API *R *


Кадр из мультфильма «Смешарики: 132 серия (Пылесос)»


При проведении различной ad-hoc аналитики или же создания интеграций между DS решением и внешними системами очень часто приходится использовать REST API для получения данных. Ситуация, когда все помещается в один запрос — идеальна, но редка как единорог. Как правило, приходится тянуть большие объемы, тянуть по частям и в режиме многоходовок, возможно, с использованием курсоров. Внешняя система может лечь при большой нагрузке или же там включатся механизмы пропуска запросов (троттлинг). Вопросы «почему у меня не работает» и «как мне сделать, чтобы работало» возникают с завидной регулярностью.


Ниже приведен блочный разбор типового скрипта для получению данных из внешней системы через REST API. Его можно рассматривать как первое приближение решения задачи подобного класса.


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

Читать дальше →
Total votes 7: ↑7 and ↓0 +7
Views 6K
Comments 0

Data Science 'по ту сторону изгороди'

Python *Data Mining *Big Data *R *


Кадр из мультфильма «Over the Garden Wall» (2014)


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


Однако, изначально просто счёт относился к computer science, а data science было более широким и междисциплинарным понятием. В классическом понимании data scientist — «T-shape» специалист, который оцифровывает и увязывает административные и предметные вертикали/горизонтали компаний через математические модели.


Далее немного иллюстрирующих примеров.


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

Читать дальше →
Total votes 3: ↑3 and ↓0 +3
Views 4.8K
Comments 2

process mining: 100 строк кода и генератор логов у нас в руках

Python *Data Mining *R *Business Models *


Продакт-менеджерам посвящается...


Заступая на территорию proccess mining, каждый участник рано или поздно будет нуждаться в наборе логов событий, отражающих те или иные специфические моменты в процессах. Эти логи нужны как на этапе демонстрации решения, подсвечивания определенных вопросов, так и для отработки алгоритмов или же тестов на производительность. Оба рекомендуемых сценария «взять с продуктивных систем» или «взять из интернета» терпят фиаско. Как правило, это очень
малые датасеты, слабо удовлетворяющие потребностям как по наполнению, так и по объему.


Остается вариант — написать генератор правдоподобных логов самостоятельно. Тут тоже есть два варианта.


  • Вариант первый — превратить эту задачу в универсальный монстроподобный продукт, содержащий визуальный конструктор в нотации BPMN 2.0, всевозможные визуальные конструкторы формул и атрибутов, полноценную имитационную машину под капотом. Годы работы, миллионы на ветер, на выходе — файл с логами. КПД близок к нулю.
  • Вариант второй — отнестись к этой задаче как к вспомогательной и создать инструментами data science стека упрощенный генератор в 100 строк кода.

Остановимся далее на втором варианте.


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

Читать дальше →
Total votes 3: ↑3 and ↓0 +3
Views 2.2K
Comments 0

ETL в анализе данных без перерывов на кофе и курилку

Python *Data Mining *R *Data Engineering *


Кадр из фильма «Индиана Джонс: В поисках утраченного ковчега» (1981)


Наблюдаемая все чаще и чаще картина в задаче анализа данных вызывает удручающее впечатление. Intel, AMD и другие производители непрерывно наращивают вычислительную мощность. Гениальные математики-программисты пишут суперэффективные библиотеки и алгоритмы. И вся эта мощь гасится и распыляется рядовыми аналитиками и разработчиками. Причем начинается это все с нулевого этапа — этап подготовки и загрузки данных для анализа. Многочисленные вопросы и диалоги показывают, что в нынешних программах обучения зияют огромные дыры. Людям просто незнакомы многие концепции и инструменты, уже давно придуманные для этих задач. Для тех, кто хочет увеличить свою продуктивность, далее тезисно будут рассмотрены ряд таких подходов и инструментов в частичной привязке к реальным задачам.


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


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

Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Views 5.9K
Comments 4

Уходим с Mercurial на Git

RUVDS.com corporate blog Python *Git *R *Development Management *
Tutorial
Кадр из фильма «Красный шар». Режиссер Альбер Ламорис. 1956 год

Так уж случилось, что у меня остался ряд репозиториев на Mercurial, которые захостил на Bitbucket много лет назад. Проекты перешли в полуархивное состояние, поэтому заглядывал в них не так уж и часто. И тут я решил обратиться к материалам, надо было внести правку. С удивлением обнаружил, что репозиториев на битбакете нет, но есть публикация «Sunsetting Mercurial support in Bitbucket».

Не критично, локальные репозитории сохранились же (а там коммитов за 10+ лет). Попробуем переехать на github/gitlab по инструкции из статьи. И, конечно же, эти инструкции работают только с latin-1, русские буквы либо не дают переехать, либо заменяются на ?. Извечная проблема кодировок. Можно ли что-то сделать?

UPDATE по результатам комментариев.
Для «приземления» задачи рассмотрите контекст коммерческой поддержки большой инсталляции ПО, созданного в компании где вы сейчас работаете, которое n лет уже не развивается (выпустили совсем новую ветку), но обязательства по поддержке остались по проданным ранее контрактам. И периодически всплывают баги.

Является продолжением серии предыдущих публикаций.
Читать дальше →
Total votes 37: ↑36 and ↓1 +35
Views 8.1K
Comments 34

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity