Big Data Science [RU]
1.62K subscribers
79 photos
9 videos
544 links
Big Data Science [RU] — канал о жизни Data Science.
Для сотрудничества: a.chernobrovov@gmail.com
🌏https://t.me/bdscience — Big Data Science channel (english version)
💼https://t.me/bds_job — channel about Data Science jobs and career
Download Telegram
Как получать качественные данные?

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

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

Матемаркетинг - крупнейшая конференция по продуктовой и маркетинговой аналитике, монетизации и решениям, основанным на данных, в России и СНГ.

- - - -
Матемаркетинг пройдет 18-19 ноября в Москве, а также будет доступен в онлайне.
↪️ Программа и все подробности доступны на нашем сайте.
- - - -

А пока делимся докладом Jordi Roura, InfoTrust Барселона, с прошлогоднего Матемаркетинга, из которого вы сможете подробнее узнать о том, как обеспечивать качество данных в целом и на конкретных примерах.
✍🏻5 советов Data Scientist’у по Scikit-learn
1. Заполнение пропусков с помощью итеративного заполнителя
– IterativeImputer, который итеративно ищет и заполняет пропущенные значения, улучшая датасет с каждой итерацией. Для использования этой функции ее следует импортировать enable_iterative_imputer из пакета sklearn.experimental
2. Генерация случайных фиктивных данных, чтобы зарезервировать место, где должны присутствовать реальные или полезные данные. Фиктивные данные нужны для тестирования, поэтому они должны быть надежными. Для этого можно применить функции make_classification() в задаче классификации или make_regression() в задаче регрессии. Также можно установить количество образцов и фичей, чтобы контролировать поведение данных в отладке и тестировании.
3. Сохранение ML-моделей, чтобы повторно использовать их без переобучения. Чтобы сериализовать свои алгоритмы и сохранить их, пригодятся Python-библиотеки pickle и joblib.
4. Построение матрицы ошибок с помощью функции plot_confusion_matrix, которая отображает истинно положительные, ложноположительные, ложноотрицательные и истинно отрицательные значения.
5. Визуализация деревьев решений с помощью функции tree.plot_tree в пакете matplotlib без ручной установки зависимостей для создания простых визуализаций. Также можно сохранить дерево как графический png-файл.
https://www.educative.io/blog/scikit-learn-tricks-tips
Искусственный интеллект проверит надежность российских НКО ⚡️⚡️

С 15 по 17 октября в Перми состоится шестой из 116 хакатонов по искусственному интеллекту 😌

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

Постановщик задачи: платформа интеллектуального волонтерства ProCharity.

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

Победители разделят между собой призовой фонд в 400 000 рублей!!

✌️ Встречаемся в Технопарке Morion Digital по адресу:
ш. Космонавтов, д. 111, корп. 10


Организатор проекта – Министерство экономического развития РФ, оператор – АНО «Россия – страна возможностей». Организационный партнер – Российская ассоциация электронных коммуникаций, технологический партнер – Яндекс.Облако.

⚡️ Регистрация открыта до 13 октября.

https://hacks-ai.ru/hakaton/perm
📝Математика для Data Scientist’а: 3 меры расстояния, часть 1
Евклидово расстояние (Euclidean Distance) – измеряет длину отрезка, соединяющего две точки. Самая распространенная мера, но не масштабируемая, т.к. вычисленные расстояния могут искажаться в зависимости от единиц измерения объектов. Поэтому перед использованием этой метры нужно нормализовать данные. По мере увеличения размерности данных полезность евклидова расстояния уменьшается. Но эта мера отлично работает для данные с низкой размерностью. Например, методы kNN и HDBSCAN показывают с этой мерой хорошие результаты. Наконец, евклидово расстояние интуитивно понятно в использовании и просто в реализации.
Косинусное подобие (Cosine Similarity) - косинус угла между двумя векторами. Этот способ помогает устранить недостатки евклидова расстояния для высокой размерности. Два вектора с одинаковой ориентацией имеют косинусное сходство, равное 1, а векторы, диаметрально противоположные друг другу, имеют сходство, равное -1. Величина векторов не имеет значения, поскольку это мера ориентации. Поэтому данная мера не слишком подойдет для рекомендательных систем, т.к. косинусное сходство не учитывает разницу в шкале оценок между разными пользователями. Тем не менее, косинусное сходство пригодится, когда есть многомерные данные и величина векторов не имеет значения, например, для анализа текстов.
Расстояние Хэмминга (Hamming distance ) - количество значений, которые отличаются в двух векторах. Обычно используется для сравнения двух двоичных строк одинаковой длины, например, чтобы сравнить, насколько они похожи друг на друга, путем вычисления количества отличающихся символов. Расстояние Хэмминга сложно применить, когда два вектора имеют разные длины. Например, для исправления или обнаружение ошибок при передаче данных по компьютерным сетям при определении количества искаженных битов в двоичном слове как способа оценки ошибки. Также можно использовать расстояние Хэмминга для измерения расстояния между категориальными переменными.
🚀FLAN от Google AI: универсальные языковые модели с тонкой настройкой инструкций
Чтобы ML-модель могла генерировать осмысленный текст, она должна обладать большим объемом знаний о мире и способностью к абстрагированию. Хотя языковые модели, которые обучены этому, способны автоматически приобретать эти знания по мере их масштабирования, ML-модели их следует лучше раскрыть эти знания и применить их к конкретным реальным задачам.
Один из недавних популярных методов использования языковых моделей для решения задач называется подсказкой с нулевым выстрелом или подсказкой с несколькими выстрелами. Этот метод формулирует задачу на основе текста, который языковая модель могла видеть во время обучения, чтобы затем генерировать ответ, дополняя текст. Хотя этот метод имеет хорошую производительность для некоторых задач, он требует тщательного проектирования, чтобы задачи выглядели как данные, которые модель видела во время обучения. Этот подход хорошо работает с некоторыми задачами, но может быть не интуитивно понятным для практического взаимодействия с моделью. Например, создатели GPT-3 обнаружили, что такие методы подсказки не приводят к хорошей производительности в задачах вывода естественного языка (NLI).
Вместо этого FLAN настраивает модель на большом наборе разнообразных инструкций, которые используют простое и интуитивно понятное описание задачи, например, «Классифицируйте этот обзор фильма как положительный или отрицательный» или «Переведите это предложение на датский». Создание набора данных с инструкциями с нуля для точной настройки модели потребует значительных ресурсов. Поэтому можно использовать шаблоны для преобразования существующих наборов данных в учебный формат. Эксперименты исследователей Google AI показали успешность такого подхода, протестировав FLAN и GPT-3 на 25 задачах.
Примечательно, что в небольших масштабах метод FLAN фактически снижает производительность, и только в более крупных масштабах модель становится способной обобщать инструкции в обучающих данных до невидимых задач. Это связано с тем, что маленькие модели не имеют достаточного количества параметров для выполнения большого количества задач.
https://ai.googleblog.com/2021/10/introducing-flan-more-generalizable.html
Сравнение FLAN с GPT-3
🚀Новый прорыв от DeepMind AI: архитектура Enformer для генетических исследований
Архитектура Enformer, основанная на Transformers, продвигает генетические исследования, чтобы точно предсказывать, как последовательность ДНК влияет на экспрессию генов. В начале октября 2021 года журнал Nature Methods опубликовал статью исследователей DeepMind и Calico про новую архитектуру нейросети Enformer, которая намного повышает точность прогнозирования экспрессии генов по последовательности ДНК. Разработчики выложили эту модель и ее первоначальные прогнозы общих генетических вариантов в открытый доступ.
Enformer основана на трансформерах, распространенных в обработке естественного языка, чтобы использовать механизмы самовнимания для большего охвата ДНК-контекста. Путем эффективной обработки последовательностей для учета взаимодействий на расстояниях, которые более чем в 5 раз (т.е. 200000 пар оснований) больше предыдущих методов, новая архитектура может моделировать влияние важных регуляторных элементов на экспрессию генов, находящихся в последовательности ДНК.
С помощью ИИ можно исследовать новые возможности для поиска закономерностей в геноме и выдвигать механистические гипотезы об изменениях последовательностей. Подобно программе проверки орфографии, Enformer частично понимает словарь последовательности ДНК и может выделять изменения, которые могут привести к изменению экспрессии генов.
Основное применение этой новой модели - предсказать, какие изменения букв ДНК, также называемые генетическими вариантами, повлияют на экспрессию гена. По сравнению с предыдущими моделями Enformer значительно точнее предсказывает влияние вариантов на экспрессию генов, как в случае естественных генетических вариантов, так и синтетических вариантов, которые изменяют важные регуляторные последовательности. Это свойство полезно для интерпретации растущего числа вариантов, связанных с заболеванием, полученных с помощью полногеномных ассоциативных исследований. Варианты, связанные со сложными генетическими заболеваниями, преимущественно расположены в некодирующей области генома, вероятно, вызывая заболевание, изменяя экспрессию генов. Но из-за внутренней корреляции между вариантами многие из этих связанных с заболеванием вариантов коррелируют только ложно, а не являются причинными. Вычислительные инструменты помогают отличить истинные ассоциации от ложных срабатываний.
https://deepmind.com/blog/article/enformer
https://www.nature.com/articles/s41592-021-01252-x
https://github.com/deepmind/deepmind-research/tree/master/enformer
✍🏻Математика для Data Scientist’а: еще 3 меры измерения расстояния, часть 2
Манхэттенское расстояние (Manhattan Distance), которое также называют мерой такси или городского квартала, вычисляет расстояние между векторами с действительными значениями. Тогда манхэттенское расстояние относится к расстоянию между двумя векторами на однородной сетке, если они могут двигаться только под прямым углом. При расчете расстояния не используется диагональное движение. Хотя манхэттенское расстояние кажется приемлемым для многомерных данных, это мера менее интуитивно понятна, чем евклидово расстояние. Мера с большей вероятностью даст более высокое значение расстояния, чем евклидово расстояние, поскольку оно не является кратчайшим из возможных. Однако, если набор данных имеет дискретные и/или двоичные атрибуты, манхэттенское расстояние работает хорошо, поскольку учитывает реальные пути в пределах возможных значений.
Расстояние Чебышева (Chebyshev distance) определяется как наибольшая разница между двумя векторами по любому координатному измерению, т.е. это просто максимальное расстояние по одной оси. Эту меру также часто называют расстоянием шахматной доски, поскольку минимальное количество ходов, необходимых королю для перехода с одного поля на другое, равно расстоянию Чебышева. Это расстояние обычно используется в очень конкретных случаях использования, что затрудняет его использование в качестве универсальной меры расстояния, в отличие от евклидова расстояния или косинусного подобия. Поэтому рекомендуется расстояние Чебышева только в определенных случаях. Например, для определения минимального количества ходов в играх, допускающих неограниченное 8-стороннее движение. Также расстояние Чебышева часто используется в складской логистике, например, для определения времени, необходимому мостовому крану для перемещения объекта.
Расстояние Минковского (Minkowski distance) - более сложная мера, используемая в нормированном векторном пространстве (n-мерное реальное пространство), где расстояния могут быть представлены как вектор, имеющий длину. При использовании этой меры есть нулевой вектор, который имеет нулевую длину, а все другие имеют положительную, вектор может умножаться на число (скалярный коэффициент), а кратчайшим расстоянием между двумя точками является прямая линия. Также здесь можно использовать параметр p, чтобы управлять показателями расстояния, похожих на другие меры, например, p = 1 используется для Манхэттенского расстояния, p = 2 – для Евклидова, а p = ∞ для расстояния Чебышева. Поэтому, чтобы работать с расстоянием Минковского, нужно понимать назначение, достоинства и недостатки манхэттенской, евклидовой и меры Чебышева. А поиск правильного значения параметра p может быть неэффективным с вычислительной точки зрения, он дает гибкость в отношении метрики расстояния и в случае верного подбора может быть огромным преимуществом.
📝Анализ данных временных рядов: 5 советов Data Scientist’у
Одна из самых распространенных ошибок в анализе данных временных рядов, которую совершают новички – это предположение, что данные имеют регулярные точки и не содержат пропусков. На практике это обычно не подтверждается и приводит к неверным результатам. В реальных датасетах часто отсутствуют точки данных, а имеющиеся расположены неравномерно или непоследовательно. Поэтому перед анализом данных временных рядов следует провести этап предварительной подготовки:
Понять временной диапазон и детализацию временного ряда по точкам данных с помощью визуализации датасета;
Сравнить фактическое количество тактов в каждом временном ряду с количеством ожидаемых тактов в зависимости от интервала между точками и общей длины временного ряда. Это соотношение иногда называют коэффициентом заполнения, равным разнице между максимальной и минимальной временной меткой, деленной на интервал между точками. Если это значение намного меньшее 1, то пропущено очень много данных.
Отфильтровать серии с низким коэффициентом заполнения, установив ограничение, например, в 40% или то, что подходит для конкретной задачи.
Стандартизировать интервал между отметками во временных рядах за счет повышения дискретизации до более детального разрешения.
Заполнить пропуски с повышенной дискретизацией, используя соответствующий метод интерполяции, например, на основе последнего известного значения или линейной/квадратичной интерполяции. В Apache Spark для этого можно использовать метод applyInPandas в сгруппированном датафрейме PySpark, под капотом которого pandasUDF, производительность которой намного выше простых UDF-функций за счет более эффективной передачи данных через Apache Arrow и вычислений через векторизацию Pandas.
https://towardsdatascience.com/a-common-mistake-to-avoid-when-working-with-time-series-data-eedf60a8b4c1
👻SimVLM от Google AI: предварительное обучение визуальной языковой модели со слабым контролем
Визуальное моделирование языка включает понимание языка на визуальных входах, которые могут быть полезны для разработки продуктов и инструментов. Например, модель подписи к изображениям генерирует описания на естественном языке на основе понимания сути изображения. За последние несколько лет был достигнут значительный прогресс в визуальном моделировании языка благодаря внедрению технологии VLP (Vision-Language Pre-training).
Этот подход направлен на изучение единого функционального пространства сразу из визуальных и языковых входов. Для этой цели VLP часто использует детектор объектов, например, Faster R-CNN, обученный на наборах данных маркированных объектов для выделения областей интереса, полагаясь на подходы, специфичные для конкретной задач и совместного изучения представления изображений и текстов. Такие подходы требуют аннотированных датасетов или времени для их маркировки, а поэтому менее масштабируемы.
Для решения этой проблемы исследователи Google AI предлагают минималистичный и эффективный VLP под названием SimVLM (Simple Visual Language Model). SimVLM обучается от начала до конца с единой целью, аналогичной языковому моделированию, на огромном количестве слабо выровненных пар изображение-текст, т.е. текст в паре с изображением не обязательно является точным описанием картинки.
Простота SimVLM обеспечивает эффективное обучение на таком масштабируемом наборе данных, помогая модели достичь высочайшего уровня производительности по шести тестам на языке визуализации. Кроме того, SimVLM включает унифицированное мультимодальное представление, которое обеспечивает надежную кросс-модальную передачу без точной настройки или с тонкой настройкой только для текстовых данных, в т.ч. визуализацию ответов на вопросы, подписи к изображениям и мультимодальный перевод.
В отличие от BERT и других методов VLP, которые применяют процедуры предварительного обучения, SimVLM принимает структуру от последовательности к последовательности и обучается с помощью целевой модели языка с одним префиксом (PrefixLM), которая получает ведущую часть последовательность (префикс) в качестве входных данных, затем предсказывает ее продолжение. Например, для последовательности «Собака гонится за желтым мячом» последовательность случайным образом усекается до префикса «Собака гонится», и модель предсказывает ее продолжение. Концепция префикса аналогичным образом применяется к изображениям, где изображение делится на ряд «фрагментов», подмножество которых последовательно подается в модель в качестве входных данных. В SimVLM для мультимодальных входных данных (изображений и их подписей) префикс представляет собой конкатенацию последовательности фрагментов изображения и последовательности текста префикса, полученных кодером. Затем декодер предсказывает продолжение текстовой последовательности.
Благодаря этой идее, SimVLM максимизирует гибкость и универсальность в приспособлении ML-модели к различным настройкам задач. А успешно проверенные в BERT и ViT, архитектура трансформеров позволяет модели напрямую принимать на вход необработанные изображения. Также здесь применяется этап свертки из первых трех блоков ResNet, чтобы извлечь контекстуализированные патчи, что более выгодно, чем наивная линейная проекция исходной модели ViT.
Модель предварительно обучена на крупномасштабных наборах данных с изображениями и текстами. В качестве обучающего датасета использовался ALIGN, содержащий около 1,8 млрд зашумленных пар изображение-текст. Для текстовых данных использовался набор данных Colossal Clean Crawled Corpus (C4) из 800G веб-документов. Тестирование SimVLM показало успешность этой ML-модели даже без контролируемой точной настройки. SimVLM смогла качества субтитров, близкого результатам контролируемых методов.
https://ai.googleblog.com/2021/10/simvlm-simple-visual-language-model-pre.html
SimVLM by Google AI
Последнее время очень мало читаю каналы по Data Science, так как не хватает времени. Но у меня есть гилти плежер – это канал Арсения. Мы с Арсением познакомились давно, когда он меня пригласил выступить в Минск на DataFest. Помимо того, что Арсений мой хороший приятель, он еще крутой ML-инженер, которого интересно читать. Вот его недавний пост https://t.me/partially_unsupervised/125 про разделение ролей. Мне очень нравится, что Арсений всегда высказывает свое мнение, хотя часто оно бывает спорным. Мне, кстати, тяжело высказываться на такие темы и обсуждать коллег, но в комментах идут жаркие споры и можно послушать разные мнения. В общем всем советую подписаться на его канал: https://t.me/partially_unsupervised
Чебоксары ⚡️⚡️⚡️
Хакатон по искусственному интеллекту 7/116


Кейс: Создание комфортной городской среды
Кейсодержатель: Минцифры Чувашии
Призовой фонд: 400 000 русских денег 🤑

Участникам предстоит создать карту потребностей жителей города Чебоксары в объектах комфортной городской среды на основе обращений граждан в государственные и муниципальные органы власти, а также информации в открытых источниках. С применением технологий искусственного интеллекта, конечно же.

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

🙃 Что хотим получить в итоге?

Прототип системы, локализующей на карте города зоны потребностей в объектах комфортной городской среды с описанием типов объектов (сквер, велодорожка, игровая площадка, общественный туалет и т.д.) и определением «срочности» их возведения.

Соревнование пройдет в ледовом дворце «Чебоксары-Арена» - самом большом спортивном сооружении в Чувашии общей площадью 33 857,90 кв.м.

⚡️⚡️Это уникальная возможность:

▫️внести вклад в развитие ИТ-отрасли страны;
▫️прокачать скиллы;
▫️ пополнить портфолио классным проектом;
▫️ пообщаться с экспертами и вообще людьми, разделяющими твои интересы!

Регистрируйся на сайте до 27 октября!

https://hacks-ai.ru/hakaton/cheboksary
Forwarded from Citymobil Tech
Ситуация с Covid-19 остаётся напряжённой, поэтому выйти поговорить в офлайн явно не получится.

Но Ситимобил может смело организовать онлайн-митап👌🏻.

28 октября в 18:00 мы проведём Citymobil Data Meetup!
Это митапы о применении Data science в городских и геосервисах, логистике и технологиях умных городов.

Программа – пушка!
👤 Ксения Мензорова | Data Science в Surge Pricing | Ситимобил
«Атака тестов на свичбэк».

👤 Екатерина Колпакова | Руководитель DWH | Ситимобил
«Сказ про то как мы в Ситимобил DWH строим».

👤 Николай Рядчиков | Senior ML Specialist | Самокат
«Прогнозирование времени доставки заказа».

Интересно?
Тогда приглашаем вас на страницу с подробностями и регистрацией.

До встречи!
Недавно мне попался предпринт книги по байесовской оптимизации Романа Гарнетта (Roman Garnett), доцента Вашингтонского университета св. Льюиса (Washington University in St. Louis). Это черновик монографии ученого, которая будет официально опубликована издательством Cambridge University Press в начале 2022 года. Основное содержание книги уже сейчас доступно на Github, куда ее выложил сам автор: https://github.com/bayesoptbook/bayesoptbook.github.io/tree/master/book
Почти 350 страниц англоязычного текста полностью охватывают математические основы оптимизации вообще и байесовского подхода в частности. Книга предназначена для студентов, аспирантов и специалистов Data Science, включая области машинного обучения и статистики. Хотя в целом текст написан достаточно сухим математическим языком, внимательный читатель даже без глубокого опыта в математике сможет освоить материал благодаря обилию наглядных иллюстраций и подробному объяснению формул.
Книга охватывает основные 3 темы:
• теоретические и практические аспекты моделирования гауссовских процессов,
• байесовский подход к последовательному принятию решений,
• реализация практических и эффективных политик оптимизации.
Также затронуты несколько дополнительных тем:
• обзор результатов теоретической сходимости,
• обзор заметных расширений,
• всесторонняя история байесовской оптимизации,
• аннотированная библиография приложений.
На мой взгляд книга пригодится не только студентам и преподавателям, но и практикующим DS-исследователям, которым нужно подтянуть математику, вспомнить некоторые темы или углубить свои знания теории оптимизации.
✈️Математика для Data Scientist’а: меры измерения расстояния, часть 3
Индекс Жаккара или Пересечение над объединением (Jaccard index or Intersection over Union) – это показатель для расчета сходства и разнообразия нескольких выборок – размер пересечения, деленный на размер их объединения. На практике это общее количество похожих объектов между наборами, деленное на общее количество объектов. Например, если у двух наборов 1 общая сущность и всего 5 разных сущностей, то индекс Жаккара будет 1/5 = 0,2. Главный недостаток этой меры – зависимость от объема данных: чем больше выборка, тем больше значение индекса. Индекс Жаккара часто используется в приложениях, где используются двоичные данные. Например, DL-модель прогнозирует сегменты изображения. В этом случае индекс Жаккара можно использовать для расчета, насколько точно прогноз соответствует реальности. Точно эту меру можно применять для анализа сходств текста, чтобы измерить, насколько часто выбираются слова между документами и сравнения наборов нескольких шаблонов.
Индекс Соренсена-Дайса (Sørensen-Dice index) очень похож на индекс Жаккара – он также измеряет сходство и разнообразие нескольких выборок. Хотя они рассчитываются аналогично, индекс Соренсена-Дайса немного более интуитивно понятен, потому что его можно рассматривать как процент перекрытия между двумя наборами, который представляет собой значение от 0 до 1. Как и индекс Жаккара, индекс Соренсена-Дайса преувеличивают важность наборов, в которых практически отсутствуют достоверные положительные результаты, взвешивая каждый элемент обратно пропорционально размеру его выборки. Эта мера часто применяется в задачах сегментации изображений и в анализе текстового сходства.
Расстояние Хаверсинуса (Haversine distance) – это расстояние между двумя точками на сфере с учетом их долготы и широты. Это похоже на евклидово расстояние в том, что вычисляет самую короткую линию между двумя точками, которые находятся на сфере. С этим связан главный недостаток этой меры – идеальных сфер в реальности не существует. Например, из-за неровностей ландшафта планеты расчеты могут быть искажены. Вместо этого можно использовать расстояние Винсенти (Vincenty distance), которое вместо сферы работает с эллипсоидом. Неудивительно, что расстояние Хаверсинуса часто используется в навигации. Например, для расчета расстояния между двумя странами при перелете между ними. На небольших расстояниях применять эту меру нет смысла, т.к. малый радиус кривизны не дает большого эффекта.
📚Введение в разработку фичей для прогнозирования временных рядов - отрывок из книги доктора Francesca Lazzeri «Машинное обучение для прогнозирования временных рядов с помощью Python» (Machine Learning for Time Series Forecasting with Python), опубликованной в декабре 2020 года

Разработка ML-моделей часто занимает много времени и требует учета множества факторов: повторение алгоритмов, настройка гиперпараметров и feature engineering. Эти варианты дополнительно умножаются на данные временных рядов, поскольку DS-специалисты должны еще учитывать тенденции, сезонность, праздники и внешние экономические переменные. Каждый ML-алгоритм ожидает данные в качестве входных данных, которые должны быть отформатированы. Поэтому наборы данных временных рядов требуют предварительной очистки и определения фичей, прежде чем запустить моделирование.
Особенность анализа временных рядов в том, что точки данных привязываются ко времени. Например, необходимо построить выходные данные ML-модели, определив переменную, которую необходимо предсказать (будущее количество продаж в следующий понедельник), а затем использовать исторические данные и набор фичей для создания входных переменных. Это нужно для достижения следующих целей:
• создание корректного набора входных данных для ML-алгоритма, чтобы создать входные фичи из исторических данных и сформировать датасет как задачу контролируемого обучения;
• повышение производительности ML-моделей – создание действительных отношений между входными фичами и целевой переменной, которую необходимо прогнозировать.
Основными категориями данных, полезных для анализа временных рядов, являются следующие:
Дата и время - фичи на основе значения отметки времени каждого наблюдения, например, часы, месяц и день недели для каждого наблюдения. Сюда же относятся выходные и праздники, время года и пр.
Запаздывание - значения на предыдущих временных шагах, которые считаются полезными, потому что они созданы на основе предположения, что то, что произошло в прошлом, может влиять или содержать своего рода внутреннюю информацию о будущем. Например, может быть полезно создавать функции для продаж, которые произошли в предыдущие дни в 16:00, если нужно предсказать аналогичные продажи в это же время на следующий день.
Статистика скользящего окна, чтобы вычислить статистику по значениям из заданной выборки данных путем определения диапазона, который включает сам выборку, а также некоторое заданное количество значений до и после используемой выборки.
Статистика расширяемого окна из фичей, которые включают все предыдущие данные.
Посмотреть иллюстрации и примеры Python-функций можно здесь: https://medium.com/data-science-at-microsoft/introduction-to-feature-engineering-for-time-series-forecasting-620aa55fcab0
🙌🏻Простое комбо для дата-аналитика: 3 фреймворка Python + электронные таблицы
На практике любой аналитик данных работает с датасетами не только в Jupyter Notebook или Google Colab. Иногда приходится табличные файлы открывать Excel и Google Spreadsheets. Поэтому есть потребность в объединении Python-скриптов со встроенными инструментами электронных таблиц. Для этого пригодятся следующие фреймворки:
XLWings – Python-пакет, который фактически предустановлен на Anaconda и чаще всего используется для автоматизации процессов Excel. Он похож на Openpyxl, но более надежен и удобен. Например, можно написать собственную UDF-функцию на Python для парсинга веб-страниц, машинного обучения или решения NLP-задач для данных в электронной таблице. https://www.xlwings.org/tutorials/
Mito – интерфейс электронных таблиц для Python, электронная таблица внутри Jupyter, которая генерирует код. Mito поддерживает основные функции Python, как: слияние, соединение, pivot, фильтрация, сортировка, визуализация, добавление столбцов, использование формул электронных таблиц и пр. https://docs.trymito.io/
Openpyxl – Python-пакеты для чтения из Excel и записи в него. Например, можно подключиться к локальному файлу Excel и получить доступ к определенной ячейке или их группе, извлекая данные в DataFrame. А после обработки можно отправить данные обратно в Excel-файл. На практике этот пакет чаще всего применяется в финансовой сфере, т.к. обработка больших наборов данных в Excel происходит слишком медленно. https://foss.heptapod.net/openpyxl/openpyxl