🐱Визуализация временных изменений категориальных данных: PyCatFlow vs RankFlow
Иногда Data Scientist’у требуется визуализировать ранжированные списки с течением времени, например, изменения в результатах поиска по запросам в Google или YouTube. Для этого можно использовать RankFlow - полезный инструмент с минималистичным UI и довольно затруднительным процессом подготовки данных. RankFlow позволяет сравнивать ранжированные списки с течением времени. Он требует, чтобы входные табличные данные были организованы так, чтобы каждый столбец представлял ранжированный список. Каждый ранжированный список может быть дополнен весами, добавляя к данным еще один уровень информации. Например, для результатов поиска на YouTube, можно взять количество просмотров, голосов за или соотношение голосов за-против. Каждый столбец в таблице данных представлен в виде стека узлов, упорядоченных в соответствии с рангом в данном наборе данных. Кроме того, идентичные узлы соединены между столбцами. Это выводит на первый план непрерывность и изменения данных, позволяя анализировать паттерны.
Создание визуализации RankFlow на основе этих данных требует изменения набора данных. Для каждой версии API должен быть столбец, содержащий ранжированный список разрешений, которые не упорядочиваются по какой-либо метрике релевантности. Поэтому создание порядка для диаграммы RankFlow - это дизайнерское решение, то есть элементы могут быть отсортированы в алфавитном порядке, по частоте их появления в наборе данных или на основе дополнительных данных.
На практике адаптация данных к требуемой структуре данных RankFlow довольна утомительна. Чтобы ускорить пред- и постобработку диаграмм, можно написать собственный скрипт на Python, который обрабатывает XML-данные в файле SVG, созданном RankFlow. Альтернативой является PyCatFlow - инструмент визуализации, аналогичный RankFlow, который хорошо подходит для временных данных без явной информации о ранжировании, но с потенциальными дополнительными категориальными данными. PyCatFlow - это open-source пакет Python, который можно свободно скачать с Github.
https://medium.com/@bumatic/pycatflow-visualizing-categorical-data-over-time-b344102bcce2
https://github.com/bumatic/PyCatFlow
Иногда Data Scientist’у требуется визуализировать ранжированные списки с течением времени, например, изменения в результатах поиска по запросам в Google или YouTube. Для этого можно использовать RankFlow - полезный инструмент с минималистичным UI и довольно затруднительным процессом подготовки данных. RankFlow позволяет сравнивать ранжированные списки с течением времени. Он требует, чтобы входные табличные данные были организованы так, чтобы каждый столбец представлял ранжированный список. Каждый ранжированный список может быть дополнен весами, добавляя к данным еще один уровень информации. Например, для результатов поиска на YouTube, можно взять количество просмотров, голосов за или соотношение голосов за-против. Каждый столбец в таблице данных представлен в виде стека узлов, упорядоченных в соответствии с рангом в данном наборе данных. Кроме того, идентичные узлы соединены между столбцами. Это выводит на первый план непрерывность и изменения данных, позволяя анализировать паттерны.
Создание визуализации RankFlow на основе этих данных требует изменения набора данных. Для каждой версии API должен быть столбец, содержащий ранжированный список разрешений, которые не упорядочиваются по какой-либо метрике релевантности. Поэтому создание порядка для диаграммы RankFlow - это дизайнерское решение, то есть элементы могут быть отсортированы в алфавитном порядке, по частоте их появления в наборе данных или на основе дополнительных данных.
На практике адаптация данных к требуемой структуре данных RankFlow довольна утомительна. Чтобы ускорить пред- и постобработку диаграмм, можно написать собственный скрипт на Python, который обрабатывает XML-данные в файле SVG, созданном RankFlow. Альтернативой является PyCatFlow - инструмент визуализации, аналогичный RankFlow, который хорошо подходит для временных данных без явной информации о ранжировании, но с потенциальными дополнительными категориальными данными. PyCatFlow - это open-source пакет Python, который можно свободно скачать с Github.
https://medium.com/@bumatic/pycatflow-visualizing-categorical-data-over-time-b344102bcce2
https://github.com/bumatic/PyCatFlow
Medium
PyCatFlow: Visualizing Categorical Data Over Time
PyCatFlow is a Python package for visualizing temporal changes to categorical data. It is inspired by Bernhard Rieder’s visualization tool…
💥Apache Spark на Google Colab? Установка PySpark в DS-облако
Apache Spark – один из самых востребованных вычислительных фреймворков в области Big Data. Благодаря кластерной архитектуре и выполнению заданий MapReduce в памяти он быстро обрабатывает огромные массивы данных. Spark имеет API для популярного в DS языка Python – PySpark и автоматически распараллеливает код, созданный на локальной машине, на все узлы кластера. Но как быть, если у вас нет кластера, а нужно обработать множество данных?
Помогут облачные решения – Google Colab, куда можно установить Spark. Cначала нужно загрузить Java, т.к. фреймворк написан на Scala и работает на JVM:
!apt-get install openjdk-8-jdk-headless -qq > /dev/null
Затем следует загрузить с официального сайта Apache Software Foundation сам фреймворк Spark вместе с Hadoop
!wget -q https://www-us.apache.org/dist/spark/spark-3.1.2/spark-3.1.2-bin-hadoop2.7.tgz
Разархивировать загруженный tgz-файл
!tar xf spark-3.1.2-bin-hadoop2.7.tgz
Далее следует установить библиотеку findspark, чтобы найти Spark в системе и импортировать его.
!pip install -q findspark
Затем следует задать путь к среде Colab, чтобы запустить там PySpark:
import os
os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"
os.environ["SPARK_HOME"] = "/content/spark-3.1.2-bin-hadoop2.7"
Чтобы обнаружить Spark в системе, импортируем findspark и используем метод findspark.init(). А метод findspark.find() поможет узнать, где установлен Spark:
import findspark
findspark.init()
findspark.find()
Наконец, можно импортировать сеанс Spark - SparkSession из PySpark.sql и создать точку входа во фреймворк, при необходимости указав имя приложения в конфигурационном параметре appName(“”)
from pyspark.sql import SparkSessionspark= SparkSession \
.builder \
.appName("Spark Application Name") \
.getOrCreate()
https://medium.com/geekculture/how-to-get-your-spark-installation-right-every-time-on-colab-218d57b6091d
Apache Spark – один из самых востребованных вычислительных фреймворков в области Big Data. Благодаря кластерной архитектуре и выполнению заданий MapReduce в памяти он быстро обрабатывает огромные массивы данных. Spark имеет API для популярного в DS языка Python – PySpark и автоматически распараллеливает код, созданный на локальной машине, на все узлы кластера. Но как быть, если у вас нет кластера, а нужно обработать множество данных?
Помогут облачные решения – Google Colab, куда можно установить Spark. Cначала нужно загрузить Java, т.к. фреймворк написан на Scala и работает на JVM:
!apt-get install openjdk-8-jdk-headless -qq > /dev/null
Затем следует загрузить с официального сайта Apache Software Foundation сам фреймворк Spark вместе с Hadoop
!wget -q https://www-us.apache.org/dist/spark/spark-3.1.2/spark-3.1.2-bin-hadoop2.7.tgz
Разархивировать загруженный tgz-файл
!tar xf spark-3.1.2-bin-hadoop2.7.tgz
Далее следует установить библиотеку findspark, чтобы найти Spark в системе и импортировать его.
!pip install -q findspark
Затем следует задать путь к среде Colab, чтобы запустить там PySpark:
import os
os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"
os.environ["SPARK_HOME"] = "/content/spark-3.1.2-bin-hadoop2.7"
Чтобы обнаружить Spark в системе, импортируем findspark и используем метод findspark.init(). А метод findspark.find() поможет узнать, где установлен Spark:
import findspark
findspark.init()
findspark.find()
Наконец, можно импортировать сеанс Spark - SparkSession из PySpark.sql и создать точку входа во фреймворк, при необходимости указав имя приложения в конфигурационном параметре appName(“”)
from pyspark.sql import SparkSessionspark= SparkSession \
.builder \
.appName("Spark Application Name") \
.getOrCreate()
https://medium.com/geekculture/how-to-get-your-spark-installation-right-every-time-on-colab-218d57b6091d
Medium
How to (Rightly) Install Pyspark on Google Colab
Let’s get it right regardless of version updates
🥁Дата-инженерия для DS: SynapseML от Microsoft
Корпорация Microsoft адаптировала Apache Spark к задачам дата-инженеров и DS-специалистов, выпустив SynapseML — фреймворк для создания масштабируемых ML-конвейеров. Ранее эта библиотека с открытым исходным кодом называлась MMLSpark. SynapseML на бвзе SparkML добавляет в экосистему Spark инструменты глубокого обучения и анализа данных, включая бесшовную интеграцию ML-конвейеров с Open Neural Network Exchange (ONNX), LightGBM, Cognitive Services, Vowpal Wabbit и OpenCV. Это позволяет создавать мощные и хорошо масштабируемые прогнозные и аналитические модели для различных источников данных.
Примечательно, что SynapseML умеет работать с неразмеченными датасетами благодаря API-методам готовых ИИ-сервисов для быстрого решения типовых ML-задач. SynapseML требует Scala 2.12, Spark 3.0+ и Python 3.6+. Фреймворк позволяет писать код на любом Spark-совместимом языке: Python, Scala, R, Java, .NET и C#. По протоколу HTTP пользователи могут встраивать любую веб-службу в свои модели SparkML, а кластерная природа Spark обеспечит масштабирование ML-проектов.
https://microsoft.github.io/SynapseML/
https://github.com/microsoft/SynapseML
Корпорация Microsoft адаптировала Apache Spark к задачам дата-инженеров и DS-специалистов, выпустив SynapseML — фреймворк для создания масштабируемых ML-конвейеров. Ранее эта библиотека с открытым исходным кодом называлась MMLSpark. SynapseML на бвзе SparkML добавляет в экосистему Spark инструменты глубокого обучения и анализа данных, включая бесшовную интеграцию ML-конвейеров с Open Neural Network Exchange (ONNX), LightGBM, Cognitive Services, Vowpal Wabbit и OpenCV. Это позволяет создавать мощные и хорошо масштабируемые прогнозные и аналитические модели для различных источников данных.
Примечательно, что SynapseML умеет работать с неразмеченными датасетами благодаря API-методам готовых ИИ-сервисов для быстрого решения типовых ML-задач. SynapseML требует Scala 2.12, Spark 3.0+ и Python 3.6+. Фреймворк позволяет писать код на любом Spark-совместимом языке: Python, Scala, R, Java, .NET и C#. По протоколу HTTP пользователи могут встраивать любую веб-службу в свои модели SparkML, а кластерная природа Spark обеспечит масштабирование ML-проектов.
https://microsoft.github.io/SynapseML/
https://github.com/microsoft/SynapseML
microsoft.github.io
SynapseML | SynapseML
Simple and Distributed Machine Learning
🎄❄️☃️Последний месяц 2021 года будет продуктивным! DS-события декабря:
1. 1 декабря – онлайн-митап от VK «Цифровые технологии» для директоров цифровой трансформации нефтегазовой отрасли и всех, кто интересуется цифровизацией https://vk.company/ru/press/events/862/
2. 3-4 декабря – YaTalks – крупная ежегодная конференция от Яндекса для разработчиков. Более 80 экспертов из мировых и российских компаний расскажут о современных тенденциях и лучших практиках Backend- и Frontend-разработки, а также поделятся опытом запуска новых продуктов и мобильных приложений. Для ML предусмотрен отдельный трек. Конференция пройдет онлайн, участие бесплатно по предварительной регистрации: https://yatalks.yandex.ru/
3. 3 декабря - конференция CNews "От чат-ботов к Conversation AI". Москва Radisson Blu Olympiyskiy Hotel https://conversations-ai.com/
4. 10-12 декабря – онлайн-хакатон FintechHack с призовым фондом 900 тысяч рублей. https://codenrock.com/contests/fintechack
5. 11 декабря – онлайн-встреча Big Stream по Backend- и Frontend-разработке, ML и анализу данных. https://simbirsoft.timepad.ru/event/1832864/
6. 14 декабря – DataStart – бесплатная онлайн конференция: Data Science, машинное обучение и нейросети. https://datastart.ru/
7. 16-18 декабря – Fit-M – международный научный форму от НИУ ВШЭ по анализу данных, ML-разработке, технологиям Big Data и компьютерному моделированию. https://fit-m.org/
8. 21 декабря – Очередной митап Ситамобил о применении Data science в городских и геосервисах, логистике и технологиях умных городов.https://citymobil.timepad.ru/events/
1. 1 декабря – онлайн-митап от VK «Цифровые технологии» для директоров цифровой трансформации нефтегазовой отрасли и всех, кто интересуется цифровизацией https://vk.company/ru/press/events/862/
2. 3-4 декабря – YaTalks – крупная ежегодная конференция от Яндекса для разработчиков. Более 80 экспертов из мировых и российских компаний расскажут о современных тенденциях и лучших практиках Backend- и Frontend-разработки, а также поделятся опытом запуска новых продуктов и мобильных приложений. Для ML предусмотрен отдельный трек. Конференция пройдет онлайн, участие бесплатно по предварительной регистрации: https://yatalks.yandex.ru/
3. 3 декабря - конференция CNews "От чат-ботов к Conversation AI". Москва Radisson Blu Olympiyskiy Hotel https://conversations-ai.com/
4. 10-12 декабря – онлайн-хакатон FintechHack с призовым фондом 900 тысяч рублей. https://codenrock.com/contests/fintechack
5. 11 декабря – онлайн-встреча Big Stream по Backend- и Frontend-разработке, ML и анализу данных. https://simbirsoft.timepad.ru/event/1832864/
6. 14 декабря – DataStart – бесплатная онлайн конференция: Data Science, машинное обучение и нейросети. https://datastart.ru/
7. 16-18 декабря – Fit-M – международный научный форму от НИУ ВШЭ по анализу данных, ML-разработке, технологиям Big Data и компьютерному моделированию. https://fit-m.org/
8. 21 декабря – Очередной митап Ситамобил о применении Data science в городских и геосервисах, логистике и технологиях умных городов.https://citymobil.timepad.ru/events/
🙌🏻XLS-R – новый набор ML-моделей от Facebook AI
Разработчики PyTorch из Facebook опубликовали XLS-R – набор крупномасштабных моделей для самостоятельного обучения кросс-языковому представлению речи на базе wav2vec 2.0. Модели предварительно обучены на 128 языках в течение более 400 тысяч часов немаркированной речи. Благодаря тонкой настройке модели показывают высокий уровень точности распознавания речи и отлично подходят для задач перевода, понимания и идентификации языка. Обучающие данные брались из разных источников, включая аудиокниги и записи судебных заседаний. Нейросетевые модели XLS-R содержат более 2-х миллиардов параметров и являются мультиязыковыми. Причем тестирование показало, что обучение сразу нескольким языкам повышает эффективность нейросетей. Скачать XLS-R можно с Github прямо сейчас.
https://github.com/pytorch/fairseq/tree/main/examples/wav2vec/xlsr
Разработчики PyTorch из Facebook опубликовали XLS-R – набор крупномасштабных моделей для самостоятельного обучения кросс-языковому представлению речи на базе wav2vec 2.0. Модели предварительно обучены на 128 языках в течение более 400 тысяч часов немаркированной речи. Благодаря тонкой настройке модели показывают высокий уровень точности распознавания речи и отлично подходят для задач перевода, понимания и идентификации языка. Обучающие данные брались из разных источников, включая аудиокниги и записи судебных заседаний. Нейросетевые модели XLS-R содержат более 2-х миллиардов параметров и являются мультиязыковыми. Причем тестирование показало, что обучение сразу нескольким языкам повышает эффективность нейросетей. Скачать XLS-R можно с Github прямо сейчас.
https://github.com/pytorch/fairseq/tree/main/examples/wav2vec/xlsr
GitHub
fairseq/examples/wav2vec/xlsr at main · facebookresearch/fairseq
Facebook AI Research Sequence-to-Sequence Toolkit written in Python. - facebookresearch/fairseq
👀Visual Genome: крупнейший размеченный датасет
Ученые Стенфордского университета собрали крупнейший аннотированный датасет с более 100 тысяч изображений. Всего в наборе данных почти 5,5 миллионов описаний объектов, включая атрибуты и отношения. Можно даже не скачивать датасет, а получить нужные данные, обратившись к конечной точке RESTful-API методом GET. Несмотря на то, что последние обновления в датасете датированы 2017 годом, это отличный набор данных для обучения моделей в типовых ML-задачах, от распознавания образов до анализа данных с помощью графовых алгоритмов.
https://visualgenome.org/api/v0/api_home.html
Ученые Стенфордского университета собрали крупнейший аннотированный датасет с более 100 тысяч изображений. Всего в наборе данных почти 5,5 миллионов описаний объектов, включая атрибуты и отношения. Можно даже не скачивать датасет, а получить нужные данные, обратившись к конечной точке RESTful-API методом GET. Несмотря на то, что последние обновления в датасете датированы 2017 годом, это отличный набор данных для обучения моделей в типовых ML-задачах, от распознавания образов до анализа данных с помощью графовых алгоритмов.
https://visualgenome.org/api/v0/api_home.html
Как читать Parquet-файлы с pandas
Колоночный формат Apache Parquet широко распространен в области Big Data благодаря хранению данных по столбцам и эффективному сжатию. Он позволяет быстро считать нужные данные из конкретного столбца вместо чтения полной строки, что экономит время. Однако, не каждая прикладная система умеет читать бинарные Parquet-файлы. Часто приходится преобразовывать Parquet-файлы в формат CSV или TXT, прежде чем открыть их, например, в MS Excel или Power BI, которые часто используются в работе DS-специалиста. В этом случае поможет Python-библиотека pandas со встроенной функцией считывания данных read_parquet() из Parquet-файла в датафрейм. Затем датафрейм можно сохранить в CSV-файле с помощью метода to_csv() и открывать его практически в любом офисном редакторе таблиц.
https://medium.com/@i.m.mak/workaround-for-reading-parquet-files-in-power-bi-e2d060abcb80
Колоночный формат Apache Parquet широко распространен в области Big Data благодаря хранению данных по столбцам и эффективному сжатию. Он позволяет быстро считать нужные данные из конкретного столбца вместо чтения полной строки, что экономит время. Однако, не каждая прикладная система умеет читать бинарные Parquet-файлы. Часто приходится преобразовывать Parquet-файлы в формат CSV или TXT, прежде чем открыть их, например, в MS Excel или Power BI, которые часто используются в работе DS-специалиста. В этом случае поможет Python-библиотека pandas со встроенной функцией считывания данных read_parquet() из Parquet-файла в датафрейм. Затем датафрейм можно сохранить в CSV-файле с помощью метода to_csv() и открывать его практически в любом офисном редакторе таблиц.
https://medium.com/@i.m.mak/workaround-for-reading-parquet-files-in-power-bi-e2d060abcb80
Medium
Workaround for reading Parquet files in Power BI
If you’re working with Apache Spark, an ML solution or a reporting project where you need quick reads, you must have definitely come…
Forwarded from Digital Dinner
This media is not supported in your browser
VIEW IN TELEGRAM
Хирург из Лондона провел операцию на банане в Калифорнии, по удаленке в сети 5G.
💦Что такое CDC-системы и зачем они нужны
Чтобы сократить объем данных, считываемых из корпоративного хранилища или озера, но всегда быть в курсе последних изменений, используется CDC-подход: захват измененных данных или Change Data Capture. Есть готовые инструменты CDC: Oracle Golden Gate, Qlik Replicate и HVR, лучше всего подходят для приема данных из часто обновляемых реляционных СУБД. Также инженеры данных создают собственные решения:
• вычисления CDC с использованием меток времени, маркирующих моменты создания, обновления и истечения срока действия в исходных таблицах. Любой процесс, который вставляет, обновляет или удаляет строку, должен также обновить соответствующий столбец отметки времени. Жесткое удаление не допускается. Недостаток этого способа в том, что необходимо переделать структуру базы данных, чтобы добавить столбец timestamp, а также необходимость тесной связи между исходной таблицей и кодом ETL-процесса.
• вычисления CDC с использованием отрицательного запроса, когда между источником и целевым приемником создается связь, и выполняется минус-запрос SQL для расчета журнала изменений. Этот способ скорее антипаттерн, т.к. работает только, если исходная и целевая базы данных относятся к одному типу, а еще он приводит к тому к увеличению перемещаемого объема данных.
Оба метода CDC, написанного вручную, вызывают значительную нагрузку на исходную базу данных. А специальные инструменты CDC сокращают нагрузку на сеть и источник, анализируя логи для расчета изменений. Однако, основным недостатком готовых CDC-решения является их высокая стоимость. Кроме того, администратор исходной СУБД должен предоставлять CDC-средству привилегированный доступ к журналу базы данных, что воспринимается не очень лояльно по соображениям безопасности.
https://towardsdatascience.com/change-data-capture-cdc-for-data-ingestion-ca81ff5934d2
Чтобы сократить объем данных, считываемых из корпоративного хранилища или озера, но всегда быть в курсе последних изменений, используется CDC-подход: захват измененных данных или Change Data Capture. Есть готовые инструменты CDC: Oracle Golden Gate, Qlik Replicate и HVR, лучше всего подходят для приема данных из часто обновляемых реляционных СУБД. Также инженеры данных создают собственные решения:
• вычисления CDC с использованием меток времени, маркирующих моменты создания, обновления и истечения срока действия в исходных таблицах. Любой процесс, который вставляет, обновляет или удаляет строку, должен также обновить соответствующий столбец отметки времени. Жесткое удаление не допускается. Недостаток этого способа в том, что необходимо переделать структуру базы данных, чтобы добавить столбец timestamp, а также необходимость тесной связи между исходной таблицей и кодом ETL-процесса.
• вычисления CDC с использованием отрицательного запроса, когда между источником и целевым приемником создается связь, и выполняется минус-запрос SQL для расчета журнала изменений. Этот способ скорее антипаттерн, т.к. работает только, если исходная и целевая базы данных относятся к одному типу, а еще он приводит к тому к увеличению перемещаемого объема данных.
Оба метода CDC, написанного вручную, вызывают значительную нагрузку на исходную базу данных. А специальные инструменты CDC сокращают нагрузку на сеть и источник, анализируя логи для расчета изменений. Однако, основным недостатком готовых CDC-решения является их высокая стоимость. Кроме того, администратор исходной СУБД должен предоставлять CDC-средству привилегированный доступ к журналу базы данных, что воспринимается не очень лояльно по соображениям безопасности.
https://towardsdatascience.com/change-data-capture-cdc-for-data-ingestion-ca81ff5934d2
Medium
Change Data Capture(CDC) for Data Lake Data Ingestion
Change Data Capture(CDC) tools can accelerate Data Lake adoption by enabling scalable and network efficient near-real-time data replication
💥Комбо Python и SQL в FugueSQL: единый SQL-интерфейс для датафреймов Pandas, Spark и Dask
FugueSQL - это открытая Python-библиотека, которая позволяет комбинировать Python-код с SQL-командами, переключаясь между ними в Jupyter Notebook или Python-скрипте. FugueSQL поддерживает распределенные вычисления и предоставляет унифицированный API для запуска одного и того же кода SQL в Pandas, Dask и Apache Spark.
В отличие от PandaSQL, который имеет единственный сервер SQLite, что приводит к большим накладным расходам при передаче данных между Pandas и базой данных, FugueSQL поддерживает несколько локальных бэкендов: pandas, DuckDB и SQLite.
При использовании pandas-бэкэнда Fugue напрямую переводит SQL в операции pandas, исключая передачу данных. DuckDB имеет превосходную поддержку pandas, поэтому накладные расходы на передачу данных незначительны. И Pandas, и DuckDB являются предпочтительными серверными модулями FugueSQL для локальной обработки данных. Fugue также поддерживает Spark, Dask и cuDF (через blazingSQL) в качестве бэкэндов.
В Fugue код SQL анализируется с помощью ANTLR и сопоставляется с эквивалентными функциями в API Fugue. FugueSQL имеет множество встроенных возможностей и расширяется с помощью Python-кода. По умолчанию он поддерживает наиболее распространенные на практике функции: заполнение значений NULL, удаление значений NULL, переименование столбцов, изменение схемы и пр. Fugue также добавляет некоторые улучшения в стандартный SQL, чтобы изящно обрабатывать сквозные рабочие процессы данных. Например, создание промежуточных таблиц через присвоение переменных.
В Pandas %% fsql принимает NativeExecutionEngine в качестве параметра по умолчанию. В Dask работа FugueSQL чуть медленнее нативного движка, но более полна с точки зрения реализованных ключевых слов SQL. FugueSQL также работает на Spark, сопоставляя операции %%fsql с операциями Spark и Spark SQL. Это позволяет быстро разрабатывать распределенные приложения. Достаточно создать локальный прототип с помощью NativeExecutionEngine, протестировать его и развернуть в кластере Spark, просто изменив механизм выполнения.
https://towardsdatascience.com/introducing-fuguesql-sql-for-pandas-spark-and-dask-dataframes-63d461a16b27
https://fugue-tutorials.readthedocs.io/tutorials/fugue_sql/index.html
FugueSQL - это открытая Python-библиотека, которая позволяет комбинировать Python-код с SQL-командами, переключаясь между ними в Jupyter Notebook или Python-скрипте. FugueSQL поддерживает распределенные вычисления и предоставляет унифицированный API для запуска одного и того же кода SQL в Pandas, Dask и Apache Spark.
В отличие от PandaSQL, который имеет единственный сервер SQLite, что приводит к большим накладным расходам при передаче данных между Pandas и базой данных, FugueSQL поддерживает несколько локальных бэкендов: pandas, DuckDB и SQLite.
При использовании pandas-бэкэнда Fugue напрямую переводит SQL в операции pandas, исключая передачу данных. DuckDB имеет превосходную поддержку pandas, поэтому накладные расходы на передачу данных незначительны. И Pandas, и DuckDB являются предпочтительными серверными модулями FugueSQL для локальной обработки данных. Fugue также поддерживает Spark, Dask и cuDF (через blazingSQL) в качестве бэкэндов.
В Fugue код SQL анализируется с помощью ANTLR и сопоставляется с эквивалентными функциями в API Fugue. FugueSQL имеет множество встроенных возможностей и расширяется с помощью Python-кода. По умолчанию он поддерживает наиболее распространенные на практике функции: заполнение значений NULL, удаление значений NULL, переименование столбцов, изменение схемы и пр. Fugue также добавляет некоторые улучшения в стандартный SQL, чтобы изящно обрабатывать сквозные рабочие процессы данных. Например, создание промежуточных таблиц через присвоение переменных.
В Pandas %% fsql принимает NativeExecutionEngine в качестве параметра по умолчанию. В Dask работа FugueSQL чуть медленнее нативного движка, но более полна с точки зрения реализованных ключевых слов SQL. FugueSQL также работает на Spark, сопоставляя операции %%fsql с операциями Spark и Spark SQL. Это позволяет быстро разрабатывать распределенные приложения. Достаточно создать локальный прототип с помощью NativeExecutionEngine, протестировать его и развернуть в кластере Spark, просто изменив механизм выполнения.
https://towardsdatascience.com/introducing-fuguesql-sql-for-pandas-spark-and-dask-dataframes-63d461a16b27
https://fugue-tutorials.readthedocs.io/tutorials/fugue_sql/index.html
Medium
Introducing FugueSQL — SQL for Pandas, Spark, and Dask DataFrames
An End-To-End SQL Interface for Data Science and Analytics
👻Что такое UMAP и зачем это Data Scientist’у
UMAP (Uniform Manifold Approximation and Projection) - это универсальный алгоритм обучения многообразию и уменьшения размерности. Он разработан для совместимости с scikit-learn, использует тот же API и может быть добавлен в конвейеры sklearn. Будучи стохастическим алгоритмом, UMAP использует рандомизацию для ускорения шагов аппроксимации и оптимизации. Это означает, что разные прогоны UMAP могут давать разные результаты. Хотя UMAP относительно стабилен, в идеале разница между прогонами должна быть относительно небольшой, но она есть. Чтобы гарантировать точное воспроизведение результатов, UMAP позволяет пользователю устанавливать случайное начальное состояние.
Начиная с версии 0.4 UMAP также поддерживает многопоточность для повышения производительности, а при оптимизации условия гонки между потоками допустимы на определенных этапах. Случайность в выходных данных UMAP для многопоточного случая зависит не только от входного случайного начального числа, но и от условий гонки между потоками во время оптимизации, что невозможно контролировать. Поэтому результаты многопоточного UMAP не могут быть воспроизведены явно.
UMAP можно использовать в качестве эффективного этапа предварительной обработки для повышения производительности кластеризации на основе плотности. Но UMAP, как и t-SNE, не сохраняет плотность полностью и может создавать ложные разрывы в кластерах. По сравнению с t-SNE, UMAP сохраняет более глобальную структуру, создавая более значимые кластеры. А благодаря поддержке произвольных размеров встраивания, UMAP позволяет работать с большими размерными пространствами.
Из-за активного использования метода ближайших соседей, для некоторых датасетов UMAP может чрезмерно потреблять память. Поможет установка параметра low_memory в значение True, чтобы переключиться на более медленный, но менее интенсивный подход к вычислению ближайших соседей. Также важно знать, что при запуске без случайного начального числа UMAP будет использовать параллельную реализацию NUMBA для многопоточной работы и использования ядер ЦП. По умолчанию он будет использовать столько ядер, сколько доступно. Ограничить количество потоков, используемых Numba, можно с помощью переменной среды NUMBA_NUM_THREADS. Также из-за особенностей Numba, UMAP не поддерживает 32-разрядную версию Windows.
Несмотря на некоторые недостатки, UMAP можно использовать в следующих случаях:
• разведочный анализ данных (EDA);
• интерактивная визуализация результатов анализа;
• обработка разреженных матриц;
• выявление вредоносных программ на основе поведенческих данных;
• предварительная обработка векторов фраз для кластеризации;
• предварительная обработка эмбеддингов изображений (Inception) для кластеризации.
https://github.com/lmcinnes/umap
https://umap-learn.readthedocs.io/en/latest/index.html
UMAP (Uniform Manifold Approximation and Projection) - это универсальный алгоритм обучения многообразию и уменьшения размерности. Он разработан для совместимости с scikit-learn, использует тот же API и может быть добавлен в конвейеры sklearn. Будучи стохастическим алгоритмом, UMAP использует рандомизацию для ускорения шагов аппроксимации и оптимизации. Это означает, что разные прогоны UMAP могут давать разные результаты. Хотя UMAP относительно стабилен, в идеале разница между прогонами должна быть относительно небольшой, но она есть. Чтобы гарантировать точное воспроизведение результатов, UMAP позволяет пользователю устанавливать случайное начальное состояние.
Начиная с версии 0.4 UMAP также поддерживает многопоточность для повышения производительности, а при оптимизации условия гонки между потоками допустимы на определенных этапах. Случайность в выходных данных UMAP для многопоточного случая зависит не только от входного случайного начального числа, но и от условий гонки между потоками во время оптимизации, что невозможно контролировать. Поэтому результаты многопоточного UMAP не могут быть воспроизведены явно.
UMAP можно использовать в качестве эффективного этапа предварительной обработки для повышения производительности кластеризации на основе плотности. Но UMAP, как и t-SNE, не сохраняет плотность полностью и может создавать ложные разрывы в кластерах. По сравнению с t-SNE, UMAP сохраняет более глобальную структуру, создавая более значимые кластеры. А благодаря поддержке произвольных размеров встраивания, UMAP позволяет работать с большими размерными пространствами.
Из-за активного использования метода ближайших соседей, для некоторых датасетов UMAP может чрезмерно потреблять память. Поможет установка параметра low_memory в значение True, чтобы переключиться на более медленный, но менее интенсивный подход к вычислению ближайших соседей. Также важно знать, что при запуске без случайного начального числа UMAP будет использовать параллельную реализацию NUMBA для многопоточной работы и использования ядер ЦП. По умолчанию он будет использовать столько ядер, сколько доступно. Ограничить количество потоков, используемых Numba, можно с помощью переменной среды NUMBA_NUM_THREADS. Также из-за особенностей Numba, UMAP не поддерживает 32-разрядную версию Windows.
Несмотря на некоторые недостатки, UMAP можно использовать в следующих случаях:
• разведочный анализ данных (EDA);
• интерактивная визуализация результатов анализа;
• обработка разреженных матриц;
• выявление вредоносных программ на основе поведенческих данных;
• предварительная обработка векторов фраз для кластеризации;
• предварительная обработка эмбеддингов изображений (Inception) для кластеризации.
https://github.com/lmcinnes/umap
https://umap-learn.readthedocs.io/en/latest/index.html
GitHub
GitHub - lmcinnes/umap: Uniform Manifold Approximation and Projection
Uniform Manifold Approximation and Projection. Contribute to lmcinnes/umap development by creating an account on GitHub.
🚀Ускоряем DS на больших данных: Pandas API прямо в Apache Spark
Популярный вычислительный фреймворк Apache Spark позволяет писать программы на Python, который знаком каждому DS-специалисту. Теперь PySpark включает pandas-библиотеку, которую можно импортировать всего одной строкой: import pyspark.pandas as ps.
Это дает следующие преимущества:
• снижает порог входа в Spark;
• унифицирует кодовую базу для небольших и больших данных, локальных машин и распределенных кластеров;
• ускоряет код Pandas.
Примечательно, что Pandas на Spark работает даже быстрее другого популярного Python-движка Dask.
https://spark.apache.org/docs/latest/api/python/user_guide/pandas_on_spark/index.html
https://towardsdatascience.com/run-pandas-as-fast-as-spark-f5eefe780c45
https://databricks.com/blog/2021/10/04/pandas-api-on-upcoming-apache-spark-3-2.html
Популярный вычислительный фреймворк Apache Spark позволяет писать программы на Python, который знаком каждому DS-специалисту. Теперь PySpark включает pandas-библиотеку, которую можно импортировать всего одной строкой: import pyspark.pandas as ps.
Это дает следующие преимущества:
• снижает порог входа в Spark;
• унифицирует кодовую базу для небольших и больших данных, локальных машин и распределенных кластеров;
• ускоряет код Pandas.
Примечательно, что Pandas на Spark работает даже быстрее другого популярного Python-движка Dask.
https://spark.apache.org/docs/latest/api/python/user_guide/pandas_on_spark/index.html
https://towardsdatascience.com/run-pandas-as-fast-as-spark-f5eefe780c45
https://databricks.com/blog/2021/10/04/pandas-api-on-upcoming-apache-spark-3-2.html
Medium
Run Pandas as Fast as Spark
Why the Pandas API on Spark is a total game changer
🚨 Серия митапов про Data Science в гео-данных, гео-сервисах, логистике, приложениях Smart City продолжается!
21 декабря в 19:00 МСК ждем всех на завершающей в этот год онлайн-встрече Citymobil Data Meetup!
🚀 В 2021 провели 4 митапа, привлекли 12 классных спикеров с огненными докладами:
Ксения Мензорова, Екатерина Колпакова, Николай Радчиков, Михаил Дьячков, Алексей Венжега, Алексей Кудинов, Максим Шаланкин, Сергей Свиридов, Даниил Тарарухин, Артем Солоухин, Андрей Критилин, Федор Лаврентьев.
🎁 Но на Новый год мы решили обойтись без сложных докладов, а сделать классный развлекательный формат: подвести итоги года в мире Data Science и Big Data, а также устроить викторину с подарками 🥳!
Регистрация для бесплатного участия: https://citymobil.timepad.ru/event/1870148/
Итоги года подведут:
🚕 Алексей Чернобровов (Ситимобил, Head of Data Science)
🆗 Андрей Кузнецов (Ok.ru, Data Scientist)
📹 Артур Кузин (SberDevices, Head of Computer Vision Platfrom)
⛓ Валерий Бабушкин (Blockchain.com, Head of Data Science)
☎️ Виктор Кантор (МТС, Директор центра Big Data)
🖼 Дмитрий Коробченко (NVIDIA, Senior Manager of AI)
Ведущие: Алексей Чернобровов и Анастасия Никулина!
21 декабря в 19:00 МСК ждем всех на завершающей в этот год онлайн-встрече Citymobil Data Meetup!
🚀 В 2021 провели 4 митапа, привлекли 12 классных спикеров с огненными докладами:
Ксения Мензорова, Екатерина Колпакова, Николай Радчиков, Михаил Дьячков, Алексей Венжега, Алексей Кудинов, Максим Шаланкин, Сергей Свиридов, Даниил Тарарухин, Артем Солоухин, Андрей Критилин, Федор Лаврентьев.
🎁 Но на Новый год мы решили обойтись без сложных докладов, а сделать классный развлекательный формат: подвести итоги года в мире Data Science и Big Data, а также устроить викторину с подарками 🥳!
Регистрация для бесплатного участия: https://citymobil.timepad.ru/event/1870148/
Итоги года подведут:
🚕 Алексей Чернобровов (Ситимобил, Head of Data Science)
🆗 Андрей Кузнецов (Ok.ru, Data Scientist)
📹 Артур Кузин (SberDevices, Head of Computer Vision Platfrom)
⛓ Валерий Бабушкин (Blockchain.com, Head of Data Science)
☎️ Виктор Кантор (МТС, Директор центра Big Data)
🖼 Дмитрий Коробченко (NVIDIA, Senior Manager of AI)
Ведущие: Алексей Чернобровов и Анастасия Никулина!
citymobil.timepad.ru
Citymobil Data Meetup / События на TimePad.ru
Ситимобил каждый месяц проводит митапы о применении Data science в городских и геосервисах, логистике и технологиях умных городов.
Сегодняшний митап пройдет на нашем YouTube-канале https://youtu.be/RXn5ERnhfaM
Сегодняшний митап пройдет на нашем YouTube-канале https://youtu.be/RXn5ERnhfaM
👑Продолжаем знакомиться с полезными DS-инструментами: встречайте Streamlit
Streamlit - это Python-библиотека с открытым исходным кодом, которая упрощает создание и публикацию красивых пользовательских веб-приложений для ML и DS. Создавайте и развертывайте мощные приложения всего за пару минут. Сравнение Streamlit с Dash похоже на сравнение Python с C#. Streamlit упрощает создание приложений для веб-данных в чистом коде Python, часто в несколько строк кода. Например, однострочные команды для отображения интерактивных визуальных элементов Plotly, Bokeh и Altair, Pandas DataFrames и пр. Streamlit поддерживается огромным open-source сообществом разработчиков: добавляйте собственные компоненты в библиотеку с помощью JavaScript. А облачное использование Streamlit открыто для всех: можно создать и разместить до трех приложений бесплатно.
https://streamlit.io/
Streamlit - это Python-библиотека с открытым исходным кодом, которая упрощает создание и публикацию красивых пользовательских веб-приложений для ML и DS. Создавайте и развертывайте мощные приложения всего за пару минут. Сравнение Streamlit с Dash похоже на сравнение Python с C#. Streamlit упрощает создание приложений для веб-данных в чистом коде Python, часто в несколько строк кода. Например, однострочные команды для отображения интерактивных визуальных элементов Plotly, Bokeh и Altair, Pandas DataFrames и пр. Streamlit поддерживается огромным open-source сообществом разработчиков: добавляйте собственные компоненты в библиотеку с помощью JavaScript. А облачное использование Streamlit открыто для всех: можно создать и разместить до трех приложений бесплатно.
https://streamlit.io/
streamlit.io
Streamlit • A faster way to build and share data apps
Streamlit is an open-source Python framework for data scientists and AI/ML engineers to deliver interactive data apps – in only a few lines of code.
☀️Встречайте Gallia: новая библиотека для преобразования данных
Эта Scala-библиотека с поддержкой схемы пригодится для практического преобразования данных, включая ETL-процессы, разработка функций, HTTP-ответы и пр. Будучи отлично масштабируемой, она предназначена, чтобы заполнить пробел между Pandas и Spark SQL. Gallia пригодится тем, кто ценит мощную систему типов как в Scala, и тем, кому сложно понять слишком навороченные SQL-запросы. По сути, Gallia реализует парадигму единого окна для большинства или всех потребностей преобразования данных в одном приложении. Библиотека поддерживает все виды манипуляций с данными, от агрегаций до пивот-поворота таблиц, включая обработку отдельных и вложенных объектов, а не только коллекций. Для масштабирования Gallia отлично интегрируется со Spark RDD API.
https://cros-anthony.medium.com/gallia-a-library-for-data-transformation-3fafaaa2d8b9
https://github.com/galliaproject/gallia-core/blob/master/README.md
Эта Scala-библиотека с поддержкой схемы пригодится для практического преобразования данных, включая ETL-процессы, разработка функций, HTTP-ответы и пр. Будучи отлично масштабируемой, она предназначена, чтобы заполнить пробел между Pandas и Spark SQL. Gallia пригодится тем, кто ценит мощную систему типов как в Scala, и тем, кому сложно понять слишком навороченные SQL-запросы. По сути, Gallia реализует парадигму единого окна для большинства или всех потребностей преобразования данных в одном приложении. Библиотека поддерживает все виды манипуляций с данными, от агрегаций до пивот-поворота таблиц, включая обработку отдельных и вложенных объектов, а не только коллекций. Для масштабирования Gallia отлично интегрируется со Spark RDD API.
https://cros-anthony.medium.com/gallia-a-library-for-data-transformation-3fafaaa2d8b9
https://github.com/galliaproject/gallia-core/blob/master/README.md
Medium
Gallia: A Library for Data Transformation
A schema-aware Scala library for practical data transformation: ETL, feature engineering, HTTP responses, etc
Forwarded from Алексей Чернобровов
Сегодня ML – это не только разработка моделей. Data Scientist ведет непрерывный сбор и анализ статистики процессов машинного обучения, включая распределение значений метрик и показателей производительности модели. Это занимает много времени, поэтому появляются инструменты для автоматизированного исследования таких метаданных и особенностей инфраструктуры. Одним из них является автономный open-source пакет Aim. Он позволяет отслеживать множество ML-экспериментов и сравнивать их производительность в удобном GUI или программно через SDK. API предоставляет методы, чтобы запрашивать метаданные ML-прогонов для последующей автоматизации и дополнительного анализа. По сути, Aim реализует концепцию MLOps и является альтернативой популярным средствам этого стека: Tensorboard и MLFlow. Однако, по сравнению с ними Aim имеет следующие преимущества:
• В отличие от TensorBoard и MLFlow, в Aim можно группировать и агрегировать показатели обучения ML-модели, а также строить подзаголовки по гиперпараметрам и вводить собственные функции сравнения экспериентов;
• Aim работает быстрее TensorBoard и MlFlow. Aim может обрабатывать тысячи тренировочных прогонов с десятками экспериментов в каждом, причем как на бэкэнде, так и в GUI. В частности, пользовательский интерфейс Aim может обрабатывать несколько тысяч показателей одновременно с плавным шагом.
Пакет поддерживает интеграцию с PyTorch, Hugging Face, Keras, TensorFlow и XGBoost. Пока Aim доступен для Python 3.6+ на платформах Linux и MacOS. В ближайших планах разработчиков добавить интеграцию с Python-библиотеками Scikit-learn и plotly, IDE Google Colab и Jupyter Notebook, а также MLOps-инструментами Kubeflow, Streamlit, Raytune и Google MLMD. Еще ожидается поддержка резервного копирования в облачные хранилища AWS S3, Google Cloud Storage и Azure.
Попробовать Aim можно уже сейчас, скачав его с Github: https://github.com/aimhubio/aim.
Подробная документация: https://aimstack.readthedocs.io/en/latest/
• В отличие от TensorBoard и MLFlow, в Aim можно группировать и агрегировать показатели обучения ML-модели, а также строить подзаголовки по гиперпараметрам и вводить собственные функции сравнения экспериентов;
• Aim работает быстрее TensorBoard и MlFlow. Aim может обрабатывать тысячи тренировочных прогонов с десятками экспериментов в каждом, причем как на бэкэнде, так и в GUI. В частности, пользовательский интерфейс Aim может обрабатывать несколько тысяч показателей одновременно с плавным шагом.
Пакет поддерживает интеграцию с PyTorch, Hugging Face, Keras, TensorFlow и XGBoost. Пока Aim доступен для Python 3.6+ на платформах Linux и MacOS. В ближайших планах разработчиков добавить интеграцию с Python-библиотеками Scikit-learn и plotly, IDE Google Colab и Jupyter Notebook, а также MLOps-инструментами Kubeflow, Streamlit, Raytune и Google MLMD. Еще ожидается поддержка резервного копирования в облачные хранилища AWS S3, Google Cloud Storage и Azure.
Попробовать Aim можно уже сейчас, скачав его с Github: https://github.com/aimhubio/aim.
Подробная документация: https://aimstack.readthedocs.io/en/latest/
GitHub
GitHub - aimhubio/aim: Aim 💫 — An easy-to-use & supercharged open-source experiment tracker.
Aim 💫 — An easy-to-use & supercharged open-source experiment tracker. - aimhubio/aim
👻4 простых совета для эффективной дата-инженерии
Чтобы проекты дата-инженерии с сотнями артефактов, включая файлы зависимостей, задания, модульные тесты, shell-файлы и блокноты Jupyter, не превратились в хаос, соблюдайте следующие правила:
• управляйте зависимостями, например, через менеджер зависимостей типа Poetry
• помните про юнит-тесты - внедрение модульных тестов в проект убережет от неприятностей и улучшит качество кода
• разделяй и властвуй - храните все преобразования данных в отдельном модуле
• документируйте, чтобы помнить о коде и решаемой им бизнес-задаче самому и делиться знаниями с коллегами
https://blog.devgenius.io/keeping-your-data-pipelines-organized-fa387247d59e
Чтобы проекты дата-инженерии с сотнями артефактов, включая файлы зависимостей, задания, модульные тесты, shell-файлы и блокноты Jupyter, не превратились в хаос, соблюдайте следующие правила:
• управляйте зависимостями, например, через менеджер зависимостей типа Poetry
• помните про юнит-тесты - внедрение модульных тестов в проект убережет от неприятностей и улучшит качество кода
• разделяй и властвуй - храните все преобразования данных в отдельном модуле
• документируйте, чтобы помнить о коде и решаемой им бизнес-задаче самому и делиться знаниями с коллегами
https://blog.devgenius.io/keeping-your-data-pipelines-organized-fa387247d59e
Medium
Keeping Your Data Pipelines Organized
Presenting an easy to go Data Engineer project structure
👣AutoML и не только с PyCaret
PyCaret – AutoML-библиотека с открытым исходным кодом на Python и низкоуровневым подходом к автоматизации большинства MLOps-задач. В PyCaret есть специальные функции для анализа, развертывания и объединения моделей, которых нет во многих других ML-фреймворках. Она позволяет перейти от подготовки данных к развертыванию ML-модели за считанные минуты в выбранной пользователем среде разработки.
По сути, PyCaret – это Python-оболочка для нескольких библиотек и ML-фреймворков: scikit-learn, XGBoost, LightGBM, CatBoost, spaCy, Optuna, Hyperopt, Ray и пр. Простота PyCaret позволяет использовать его не только опытным DS-специалистам, но и обычным пользователям, которые умеют выполнять простые сложные аналитические задачи. Библиотека доступна для свободного скачивания и использования под лицензией MIT. Пакет содержит несколько модулей, функции в которых сгруппированы по основным сценариям использования: от простой классификации до NLP-задач и определения аномалий.
https://pycaret.org/
https://github.com/pycaret/pycaret
PyCaret – AutoML-библиотека с открытым исходным кодом на Python и низкоуровневым подходом к автоматизации большинства MLOps-задач. В PyCaret есть специальные функции для анализа, развертывания и объединения моделей, которых нет во многих других ML-фреймворках. Она позволяет перейти от подготовки данных к развертыванию ML-модели за считанные минуты в выбранной пользователем среде разработки.
По сути, PyCaret – это Python-оболочка для нескольких библиотек и ML-фреймворков: scikit-learn, XGBoost, LightGBM, CatBoost, spaCy, Optuna, Hyperopt, Ray и пр. Простота PyCaret позволяет использовать его не только опытным DS-специалистам, но и обычным пользователям, которые умеют выполнять простые сложные аналитические задачи. Библиотека доступна для свободного скачивания и использования под лицензией MIT. Пакет содержит несколько модулей, функции в которых сгруппированы по основным сценариям использования: от простой классификации до NLP-задач и определения аномалий.
https://pycaret.org/
https://github.com/pycaret/pycaret
PyCaret
Low-code ML for Python.
Специалисты Школы анализа данных Яндекса сделали настоящий подарок для начинающих ML- и Data-специалистов, выложив в открытый доступ онлайн-учебник по машинному обучению.
• как работают технологии, которыми пользуются миллионы людей;
• какие практические задачи решает ML и какие еще предстоит решить;
• какая теоретическая база необходима для работы, связанной с ML.
На все эти вопросы и отвечает онлайн-пособие, разъясняя как основные методы и алгоритмы машинного обучения, так и практические вопросы об их реализации и работе с данными.
Приступить можно прямо сейчас — с глав «Классические методы обучения с учителем» и «Оценка качества моделей». В будущем учебник пополнится новыми разделами.
• как работают технологии, которыми пользуются миллионы людей;
• какие практические задачи решает ML и какие еще предстоит решить;
• какая теоретическая база необходима для работы, связанной с ML.
На все эти вопросы и отвечает онлайн-пособие, разъясняя как основные методы и алгоритмы машинного обучения, так и практические вопросы об их реализации и работе с данными.
Приступить можно прямо сейчас — с глав «Классические методы обучения с учителем» и «Оценка качества моделей». В будущем учебник пополнится новыми разделами.
🐻❄️В преддверии Нового года ускоряем DS: встречайте Polars
Polars – быстрая библиотека подготовки данных к ML-моделированию для Python и Rust. Она в 15 раз быстрее Pandas, распараллеливая обработку датафреймов и запросов в памяти. Будучи написанным на Rust, Polars использует все ядра компьютера. Также библиотека оптимизирована под специфику процессов обработки данных и поддерживает Python. Богатый API позволяет не только работать с огромными объемами данных на этапе их предподготовки, но и строить рабочие конвейеры. Бенчмаркинговое сравнение показало, что Polars опережает не только Pandas, но и другие инструменты, включая популярные в Big Data вычислительные движки типа Apache Spark, Dask и пр.
Установить и попробовать Polars очень просто с помощью менеджера пакетов pip:
pip install polars
import polars as pl
https://www.pola.rs/
https://betterprogramming.pub/this-library-is-15-times-faster-than-pandas-7e49c0a17adc
Polars – быстрая библиотека подготовки данных к ML-моделированию для Python и Rust. Она в 15 раз быстрее Pandas, распараллеливая обработку датафреймов и запросов в памяти. Будучи написанным на Rust, Polars использует все ядра компьютера. Также библиотека оптимизирована под специфику процессов обработки данных и поддерживает Python. Богатый API позволяет не только работать с огромными объемами данных на этапе их предподготовки, но и строить рабочие конвейеры. Бенчмаркинговое сравнение показало, что Polars опережает не только Pandas, но и другие инструменты, включая популярные в Big Data вычислительные движки типа Apache Spark, Dask и пр.
Установить и попробовать Polars очень просто с помощью менеджера пакетов pip:
pip install polars
import polars as pl
https://www.pola.rs/
https://betterprogramming.pub/this-library-is-15-times-faster-than-pandas-7e49c0a17adc
Forwarded from Deep Dive 2 Deep Learning
🔥Онлайн-встреча для CV-специалистов: про DL и не только на площадке Яндекса. 28 декабря с 12:00 до 17:30 (GMT+3).
Бесплатно, но нужна регистрация https://events.yandex.ru/events/christmas-colloquium-on-cv-2021
Бесплатно, но нужна регистрация https://events.yandex.ru/events/christmas-colloquium-on-cv-2021
Седьмой рождественский коллоквиум по компьютерному зрению
Рождественский коллоквиум — ежегодное мероприятие, на котором выступают молодые исследователи ведущих лабораторий России и мира. Коллоквиум пройдет в онлайн формате 28 декабря с 12:00 до 17:30.