Налейте аналитику
979 subscribers
43 photos
2 files
34 links
Мысли вслух лида аналитики ЛитРес, уроки по SQL/Python для новичков и не только, рассуждения о том, как делать надо и главное - как не надо, что должен уметь начинающий аналитик и чем дата-саентист отличается от дата-инженера

karaulovandrey@yandex.ru
Download Telegram
Что должен уметь и знать аналитик?

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


1. SQL. Железобетонное первое место занимает именно "Эс-ку-эль"/"Эс-кью-эль"/"Си-ку-ел" - неважно, называйте как удобно. Structured Query Language с ихнего переводится на великий могучий очевидно как "язык структурированных запросов", а на практике это основной язык, на котором аналитик данных разговаривает с базами данных. Почему я поставил этот навык на первое место? Я не знаю ни одного аналитика, кому бы он не пригодился: у кого-то SQL занимает 5% рабочего времени, у кого-то (их еще иногда называют SQL-аналитиками) - 70%. Причем знающие люди скажут, что даже те Системы Управления Базами Данных, которые гордо именуются классом NoSQL на самом деле управляются языком, максимально приближенным к привычному SQL. И с чем бы вы ни работали - Google BigQuery, Яндекс ClickHouse или Hadoop (+Hive) - с SQL вы все равно столкнетесь и даже будете этому рады ) Есть много так называемых диалектов SQL (postgreSQL, MySQL, SQLite и несколько других), которые немного отличаются по синтаксису, совсем капельку - по логике и чуть-чуть по функционалу. По личному опыту, имеет смысл учить postgreSQL, но это очень субъективно, а перейти с одного диалекта на другой за неделю-другую, в общем-то, не составит труда.

Что почитать? С книжкой в библиотеке сидеть не стоит. В сети есть куча сервисов и курсов, на которых бесплатно и не очень можно обучиться SQL в виде интерактивных уроков. Например, очень красиво (и бесплатно) сделано тут . Поверьте, это не реклама, на момент написания статьи на канале 1 подписчик - это я ))

2. Excel. По моему субъективному мнению, это второе место. Кому-то Excel может показаться простым и банальным выбором, кто-то вполне обходится в работе и без него, но Эксель не зря называют первым BI-инструментом. Для многих его возможности скрыты за клеймом "инструмента для таблиц", что, безусловно, правда, но только отчасти. В Экселе можно реализовывать, например, подбор коэффициентов для моделей регрессии через Solver, отобразить продажи на карте мира или сделать простенькую игру. Аналитики часто используют Excel в качестве инструмента для представления результатов исследований. Также предлагаю желающим ознакомиться с пакетом "Анализ данных". В данном случае для начала работы аналитиком, достаточно сохранить в закладках что-то по типу такого сайта.

3. Математика и статистика. В большей или меньшей степени знание математики необходимо. Во многих задач достаточно будет не ошибиться, отвечая на вопрос "На сколько процентов 57 больше 19?" или "Чему равна медиана ряда натуральных чисел {1,2,3,4,5}?" Но есть задачи, где без твердого фундамента придется трудно. Особенно это относится к области Data Science и машинному обучению (не подбором гиперпараметров единым), задачам на расчет стат значимости результатов АБ-тестов и наверняка еще очень многому, что просто под вечер не лезет мне в голову.
Что должен уметь и знать аналитик? (продолжение)

4. Python/R.
Начинающим аналитикам стоит взять на заметку, что освоение одного из языков программирования для работы с данными - важнейшая часть пути от Junior к Middle и Senoir-позициям. Выбирать стоит, как мне кажется, питон, т.к. он распространен намного шире языка R в среде аналитиков. Процент задач, для которых необходимо знание питона, разнится как от специализации аналитика, так и от конкретной компании, но базовые навыки обработки данных знать нужно. Чтобы освоить Python могу, как ни странно, порекомендовать этот курс от Яндекса и ВШЭ по ML, широко известный в узких кругах: первая часть в нем как раз посвящена обработке данных с помощью numpy/pandas - для старта вполне достаточно.
Что должен уметь и знать аналитик? (продолжение продолжения)

Данная статья является продолжением первой статьи о скиллах и ключевых навыках аналитика. Если в первый раз мы говорили о необходимых знаниях, то перечисленные ниже - скорее из разряда "будет плюсом" в резюме. Конечно, опытный аналитик должен обладать и этими навыками, но претендент на Junior-позицию вполне может освоить их по ходу непосредственно трудовой деятельности.


5. Инструменты Веб-аналитики. Веб-аналитика позволяет изучить сайт "от и до" - оценить кол-во посетителей/транзакций в единицу времени, посмотреть, как пользователи перемещаются по сайту, на какие разделы/кнопки кликают чаще, сколько времени проводят, на каких страницах завершают серфинг по сайту и много чего еще. Поэтому, возможно, нахождение на 5-м месте вызовет вопросы (почему так низко?). Я понимаю, что для многих работа в Яндекс Метрике и/или Google Analytics занимает большое место в рабочем процессе, и, соглашусь, важность этих инструментов сложно переоценить. Но так как статья носит более общий характер и не уточняет специализацию аналитиков, порядок у меня получился именно такой. Веб-аналитикам, безусловно, нужно уметь настраивать и Google Tag Manager, и цели в Метрике, и отправку событий в GA, и разбираться в рекламных кабинетах систем, но у Дата-саентистов или SQL-аналитиков эти знания если и есть, то точно не в оперативной памяти. Каких-либо курсов по Веб-аналитике я не проходил, поэтому рекомендовать что-то от себя не буду.


6. BI-инструменты. Через какое-то время после того, как аналитик научился работать с данными в Excel/Гугл-таблицах, у него встает следующий вопрос: можно ли автоматизировать процесс сбора данных? Он с завидной регулярностью делает SQL-запросы в Базу данных, выгружает оттуда таблицу с проданными товарами и выручкой и присылает полученную таблицу с парой графиков коллегам из отдела продаж. BI (бизнес-интеллеженс мазафака) позволяет в том числе автоматизировать такие регулярные процессы. Вообще, основной смысл и назначение BI-инструментов состоит в том, чтобы подключиться к различным (подчеркнуто) источникам данных, соединить их внутри себя воедино и построить интерактивный отчет, в котором двигать ползунки и нажимать кнопки сможет любой человек, сколь угодно далекий от аналитики. Подключаться к данным такие системы умеют регулярно или даже (реже) в реальном времени. Среди решений солидную долю рынка занимают такие BI-продукты, как PowerBI, Tableau, Qlick, OWOX и многие другие. Плюсы и минусы систем я рассмотрю в отдельной статье, но по личному опыту, если в организации нет BI-инструмента, то для аналитика это отличный способ проявить инициативу по его внедрению, а проще всего (и дешевле) это сделать с PowerBI. Напомню, что на канале мнение исключительно субъективное )

7. Инструменты для работы с большими данными. Что такое BIG DATA? Можно ответить ироничной фразой "Все, что не помещается в моем Excel - это БИГ ДАТА" . А Excel, на заметку любителям скучных фактов, вмещает 2 в степени 20 строк и 2 в степени 14 столбцов (если калькулятора под рукой нет, то это 1 048 576 строк и 16 384 столбцов). Основная мысль в том, что классические хранилища и/или инструменты на больших объемах заканчивают работать и начинают тихо умирать. Например, SQL-базы данных для хранения Терабайтных таблиц не предназначены. Они, конечно, при соответствующих серверах данные в себе содержать будут, а вот прочитать эти данные или не дай б-г провести с ними какие-нибудь манипуляции будет очень трудно. Время обработки запросов будет расти, а желание работать с такими базами - падать. БИГ ДАТА же инструменты, благодаря уникальным технологиям обработки больших массивов данных с такими задачами справляются. Поэтому, если в резюме аналитика будет строчка о том, что он работал с Hadoop или Spark, это определенно добавит ему веса в глазах работодателя.
Какие курсы пройти начинающему аналитику?

Как правило, многие начинающие аналитики смотрят в сторону курсов от Скиллбокса, Скиллфактори, Гикбрэйнс и иже с ними. Какой же курс выбрать и в каком месте учат лучше?

Принимая активное участие в наборе аналитиков и дата-саентистов в свою команду, могу ответственно заявить: никакой. Доверия к этим курсам среди рекрутеров все меньше, т.к. их выпускники в большинстве своем (определенно, бывают исключения, и их даже не так мало) не обладают достаточной глубиной знаний - они знают на первый взгляд много, но исключительно верхнеуровнево. На таких курсах, как это ни печально, не учат работать, а учат проходить собеседования.
Так как попасть аналитику в аналитику?


1. Стажировка. Идеальный вариант со всех сторон. Открываем hh, пишем в строку поиска "аналитик-стажер" и выбираем из сотен вариантов. Как правило, требования к стажерам невысоки, а зарплаты в некоторых компаниях даже у стажеров могут составлять 30-70 тысяч в месяц. Проработав стажером несколько месяцев, вы поймете, как устроены процессы в настоящей компании, насколько высок (или невысок) уровень нагрузки и стресса, а опыта наберетесь несоизмеримо больше, чем на курсах. После стажировки можно смело переходить на позицию Junior-аналитика в этой же или в другой компании.


2. Образование. Крыша у меня не поехала и противоречия со словами выше о курсах тут нет, поверьте, нормальное самообразование не равно курсы, за которые у вас попросят около 100 000 рублей, взамен пообещав гарантированное трудоустройство. Если выбирать путь самостоятельного развития без стажировки, то можно пойти двумя дорогами:

а) Школы по подготовке специалистов от федеральных учебных заведений или крупных компаний. Лидером по качеству образования тут, наверно, можно считать Школу Анализа Данных Яндекса, наборы в которую производятся раз в год, вступительные экзамены сложные, а выпуск из ШАДа автоматически означает светлый ум и знак качества в анализе данных.

б) Бесплатные курсы на онлайн-площадках. Несомненный их плюс - это бесплатность и, как ни странно, глубина обучения. Отдельные курсы точно стоят внимания (опять же, упомяну курс от Яндекса и ВШЭ), а ценятся на собеседовании они так же (если не выше), чем платные аналоги из начала статьи.
Как начать работать на Python начинающему аналитику?

Python - лидер среди языков программирования для аналитиков данных. Причин этому несколько: простой синтаксис относительно других языков, низкий порог вхождения в написание кода, а главное - огромное количество полезных библиотек, импортировав которые аналитик получает почти безграничные возможности для работы с данными. Основам написания кода на Python будет посвящен отдельный цикл статей, а в этой - посмотрим, что нужно сделать, чтобы увидеть на экране заветные "Hello, world!".
Как начать работать на Python начинающему аналитику?

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

[Anaconda - готовый дистрибутив, который можно установить себе на компуктер, включающий в себя непосредственно питон, интерфейс для более простой установки пакетов и несколько полезных приложений, поп-звездой среди которых является Jupyter Notebook. Скачать Anaconda можно с их официального сайта (но сейчас мы не будем этого делать). Поддерживает Виндовс, МакОС и Линукс]

Для начала работы в Питоне нужно лишь иметь почту на Гугловском gmail. Имея почту, заходим на сервис Google Colaboratory. Google Colab - это БЕСПЛАТНЫЙ сервис, который позволяет получить доступ к довольно мощному облачному железу, оснащенному даже GPU и TPU (понадобятся для работы с нейросетями), внешний вид и функционал которого аналогичен ноутбукам Jupyter. Ноутбук - это по сути блокнот, разбитый на ячейки, каждая из которых может выступать в роли, собственно, блокнота (в ней можно писать описание, заметки) или исполняемой ячейки с кодом.

Нажатия на "Файл - создать блокнот" откроют пустое поле, куда можно и нужно ввести код, нажать значок "плей" слева от ячейки - и вуаля - вы теперь тоже своего рода программист.
Так выглядит окно ноутбука Google Colab. Привет, мир
Какие бывают аналитики. Часть 1

Аналитик
- очень неудобное слово. Им называют представителей разных профессий, направлений и подвидов аналитической деятельности, что сильно путает всех: от самих аналитиков (кто я? что я должен делать? какие инструменты осваивать?) до руководителей и HR (почему новый Data Scientist до сих пор не описал ни одного бизнес-процесса?).

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

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


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


Веб-аналитик. Веб-аналитик анализирует поведение пользователей на сайте, используя инструменты веб-аналитики (Яндекс Метрика, Google Analytics). В задачи веб-аналитика входит определение наиболее конверсионных источников трафика, анализ посещаемости разделов сайта, анализ эффективности диджитал-рекламы, анализ аудитории и многое другое, связанное с действиями посетителей веб-ресурса.
Какие бывают аналитики. Часть 2

Эта статья является продолжением предыдущей.
Какие бывают аналитики. Часть 2

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


1) сбор данных (SQL, Big Data-хранилища, API различных продуктов, логи и т.д.);

2) очистка и структурирование собранных данных;

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

4) представление и визуализация результатов, например, в Excel/Гугл-таблицах или создание отчетов и дашбордов в BI-инструментах.


Продуктовый аналитик. Как и со многими пунктами в этой классификации, невозможно обозначить четкие границы той или иной специальности. Можно сказать, что продуктовый аналитик - это вышеописанный аналитик данных, но специализирующийся на более узком круге продуктовых задач. Это влечет за собой необходимость разбираться в смысле и влиянии на продукт кучи терминов и аббревиатур, за которыми скрываются основные продуктовые метрики (LTV, Churn rate, Retention rate, DAU/WAU/MAU, NPS, Conversion rate - и кучи других), владеть методиками проведения и расчета результатов АБ-тестов и работать в тесном сотрудничестве с product-командой.



Data Scientist. Дата-саентисты отличаются от аналитиков данных более выраженным уклоном в область машинного обучения. Они точно также собирают, очищают и анализируют данные, но для решения задач используют в большинстве случаев методы машинного обучения. Разработать рекомендательный сервис для сайта, построить модель предсказания ухода пользователей в отток, разработать нейросеть для анализа тональности обращений в поддержку - вот чем могут заниматься эти специалисты.


Естественно, данная классификация строится исключительно на личном опыте автора. В каких-то компаниях (как правило, очень больших) Аналитики данных и Data Scientist-ы не занимаются сбором и структурированием данных. На себя этот объемный и значительный кусок работ берут Дата-инженеры, организующие сбор, очистку, перемещение и хранение подготовленных данных (ETL-процессы). Нет в этой статье Финансовых аналитиков, Инвестиционных аналитиков и прочих, так как это специалисты радикально иного профиля
К каналу подключен чат. Начиная с этого поста появится возможность обсуждать там все, что душе угодно )
Разбор задачи SQL №1

#SQL_trainer1

В одной из первых статей я писал, что навык работы с Базами Данных и знание SQL - жизненно важное умение для аналитика данных. Понимая, что аудитория канала может обладать совершенно разным уровнем навыков работы с SQL, я подумал, что логично будет выстроить SQL-ликбез таким образом, чтобы в его рамках нашлось что-то интересное как для совсем-совсем новичков, так и для матерых аналитиков.

Что будет по теме SQL далее на этом канале? Я возьму сайт-тренажер (на всякий случай, это не реклама, если она когда-либо в будущем и будет, то это будет явно отмечено), и пойду по порядку заданий от элементарнейших к сложным, попутно объясняя нюансы запросов и проектирования БД. Преимущество этого тренажера в том, что писать запросы и получать результаты могут даже незарегистрированные юзеры. Правда, я в нем до этого ничего не делал, но на первый взгляд все довольно наглядно.
Первые задачи, конечно же, не вызовут трудностей и у джуниор-аналитиков, если их разбудить после отмечания первой зарплаты в 3 часа утра, но даже в них я постараюсь дать более широкое представление о работе с SQL-базами данных.

Задача 1 про пассажиров авиакомпаний. Есть вот такая структура в БД, состоящая из 4-х таблиц,

Задача - Вывести имена всех когда-либо обслуживаемых пассажиров авиакомпаний.
Что можно сказать, глядя на нее? Архитекторы баз данных всегда стараются сделать их чтение и понимание максимально простым, поэтому названия таблиц и полей, очевидно, должны быть понятными и интерпретируемыми.

Таблица Trip содержит общую информацию о рейсах, Pass_in_trip - о пассажирах на конкретном рейсе, Company содержит наименования авиакомпаний и, наконец, Passenger - имена пассажиров.

Такие структуры баз данных могут рассказать не только состав полей в таблицах и связи между ними: например, по иконке ключика около полей id можно сделать вывод о том, что поля id являются первичным ключом (PRIMARY KEY) этих таблиц, а это в свою очередь означает, что поля id уникальны. То есть в таблице Passenger один пассажир не встретится более одного раза. Такие нюансы важно понимать при анализе БД и последующих запросах, т.к. они напрямую могут повлиять на результат.

Задача - Вывести имена всех когда-либо обслуживаемых пассажиров авиакомпаний. Это, очевидно, осуществляется самым элементарным запросом к БД:

SELECT name FROM Passenger

При этом нужно отметить, что по условию не до конца понятно, если есть два разных пассажира (с разными id) по имени Ivan Ivanov, в результате должно быть две строки Ivan Ivanov или одна? Запрос выше выдаст две строки.

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

SELECT DISTINCT name FROM Passenger

[DISTINCT позволяет получить список из уникальных значений]