👍4 утилиты для работы с JSON-файлами
Hadoop и Spark, самые популярные фреймворки стека Big Data предназначены для работы с большими данными – файлами большого размера. Но часто нужно обработать много маленьких файлов, например, в формате JSON, которые в Hadoop HDFS будут распределены по множеству блоков данных и разделов. Количество разделов определяет количество задач, поскольку 1 задача может обрабатывать только 1 раздел за раз. Это будет большая нагрузка для Application Master и замедляет работу всего кластера. Кроме того, большая часть времени при этом тратится только на открытие и закрытие файлов, а не на чтение данных из файла.
Поэтому целесообразно объединить множество маленьких файлов в 1 большой, который Hadoop и Spark сможет обработать очень быстро. В случае JSON-файлов сделать такое объединение в массив записей помогут следующие утилиты:
• jq – часто используется для фильтрации и обработки входящих данных JSON, отлично подходит для анализа и обработки существующих данных https://stedolan.github.io/jq/
• jo - позволяет создавать структуры данных JSON проще и быстрее, чем вручную https://github.com/jpmens/jo
• json_pp – может отображать объекты JSON в более удобном формате, а также конвертировать их между разными форматам https://github.com/deftek/json_pp
• jshon - парсер JSON с возможностями быстрого анализа больших объемов данных http://kmkeen.com/jshon/
https://sidk17.medium.com/boss-we-have-a-large-number-of-small-files-now-how-to-process-these-files-ee27f67dc461
Hadoop и Spark, самые популярные фреймворки стека Big Data предназначены для работы с большими данными – файлами большого размера. Но часто нужно обработать много маленьких файлов, например, в формате JSON, которые в Hadoop HDFS будут распределены по множеству блоков данных и разделов. Количество разделов определяет количество задач, поскольку 1 задача может обрабатывать только 1 раздел за раз. Это будет большая нагрузка для Application Master и замедляет работу всего кластера. Кроме того, большая часть времени при этом тратится только на открытие и закрытие файлов, а не на чтение данных из файла.
Поэтому целесообразно объединить множество маленьких файлов в 1 большой, который Hadoop и Spark сможет обработать очень быстро. В случае JSON-файлов сделать такое объединение в массив записей помогут следующие утилиты:
• jq – часто используется для фильтрации и обработки входящих данных JSON, отлично подходит для анализа и обработки существующих данных https://stedolan.github.io/jq/
• jo - позволяет создавать структуры данных JSON проще и быстрее, чем вручную https://github.com/jpmens/jo
• json_pp – может отображать объекты JSON в более удобном формате, а также конвертировать их между разными форматам https://github.com/deftek/json_pp
• jshon - парсер JSON с возможностями быстрого анализа больших объемов данных http://kmkeen.com/jshon/
https://sidk17.medium.com/boss-we-have-a-large-number-of-small-files-now-how-to-process-these-files-ee27f67dc461
GitHub
GitHub - jpmens/jo: JSON output from a shell
JSON output from a shell. Contribute to jpmens/jo development by creating an account on GitHub.
👍5
👀Нужны данные для обучения ML-модели? Сгенерируй сам: 3 Python-пакета для генерации синтетических данных
Синтетические данные – это искусственно сгенерированный, а не собранный датасет по определенной тематике для обучения ML-модели или отработки техник анализа. Их можно создать самостоятельно, используя следующие Python-пакеты:
• Faker — очень простой и интуитивно понятный Python-пакет для генерации синтетических данных. Он отлично подойдет, когда нужно загрузить данные в базу, создать образцы XML-документов, подготовиться к нагрузочному тестированию или анонимизировать данные, полученные из реальных сервисов. https://github.com/joke2k/faker
• SDV (Synthetic Data Vault) — синтетическое хранилище данных для создания синтетических данных на основе заданного датасета. Сгенерированные данные могут быть одной таблицей, несколькими таблицами или временными рядами, и имеют те же свойства и статистику, что и исходный датасет. SDV генерирует синтетические данные с помощью DL-моделей. Даже если исходный датасет содержит несколько типов данных и пропуски, SDV обработает их. https://sdv.dev/SDV/
• Gretel Synthetics - пакет с открытым исходным кодом на базе рекуррентной нейронной сети для генерации структурированных и неструктурированных данных. Пакетный подход рассматривает набор данных как текстовые данные и обучает модель на их основе. Затем модель будет создавать синтетические данные с текстовыми данными. Поскольку Gretel основан на RNN-сетях, он требует больше вычислительной мощности, поэтому при работе с ним лучше использовать Google Colab, а не грузить личный компьютер. https://synthetics.docs.gretel.ai/en/stable/
Синтетические данные – это искусственно сгенерированный, а не собранный датасет по определенной тематике для обучения ML-модели или отработки техник анализа. Их можно создать самостоятельно, используя следующие Python-пакеты:
• Faker — очень простой и интуитивно понятный Python-пакет для генерации синтетических данных. Он отлично подойдет, когда нужно загрузить данные в базу, создать образцы XML-документов, подготовиться к нагрузочному тестированию или анонимизировать данные, полученные из реальных сервисов. https://github.com/joke2k/faker
• SDV (Synthetic Data Vault) — синтетическое хранилище данных для создания синтетических данных на основе заданного датасета. Сгенерированные данные могут быть одной таблицей, несколькими таблицами или временными рядами, и имеют те же свойства и статистику, что и исходный датасет. SDV генерирует синтетические данные с помощью DL-моделей. Даже если исходный датасет содержит несколько типов данных и пропуски, SDV обработает их. https://sdv.dev/SDV/
• Gretel Synthetics - пакет с открытым исходным кодом на базе рекуррентной нейронной сети для генерации структурированных и неструктурированных данных. Пакетный подход рассматривает набор данных как текстовые данные и обучает модель на их основе. Затем модель будет создавать синтетические данные с текстовыми данными. Поскольку Gretel основан на RNN-сетях, он требует больше вычислительной мощности, поэтому при работе с ним лучше использовать Google Colab, а не грузить личный компьютер. https://synthetics.docs.gretel.ai/en/stable/
GitHub
GitHub - joke2k/faker: Faker is a Python package that generates fake data for you.
Faker is a Python package that generates fake data for you. - joke2k/faker
👍7
Forwarded from Digital Dinner
This media is not supported in your browser
VIEW IN TELEGRAM
Фантазии нейросети на стихи А.С. Пушкина
Видео сделано в DALL-E 2.
Озвучено нейросетью через сервис для озвучки текста - CyberVoice – генератор голоса на основе ИИ.
На данный момент использовать можно абсолютно бесплатно.
Регистрируемся > заходим в раздел тарифы > выбираем самый дорогой листая вниз (в данный момент всё бесплатно) > меню > свободный текст > новый проект > далее выбираем голос и вводим текст > жмём иконку в виде микрофона.
Голос с видео "Убийца чудовищ".
@digitaldiner
Видео сделано в DALL-E 2.
Озвучено нейросетью через сервис для озвучки текста - CyberVoice – генератор голоса на основе ИИ.
На данный момент использовать можно абсолютно бесплатно.
Регистрируемся > заходим в раздел тарифы > выбираем самый дорогой листая вниз (в данный момент всё бесплатно) > меню > свободный текст > новый проект > далее выбираем голос и вводим текст > жмём иконку в виде микрофона.
Голос с видео "Убийца чудовищ".
@digitaldiner
🔥8
#тест
На каких выборках можно применять t-критерий Стьюдента для проверки статистических гипотез?
На каких выборках можно применять t-критерий Стьюдента для проверки статистических гипотез?
Anonymous Quiz
23%
на любых
65%
на выборках с Гауссовским распределением вероятностей
4%
на выборках с Лаплассовским распределением вероятностей
8%
на выборках с распределением вероятностей по Парето
👍8
😱3 типа аномалий в данных
Дата-аналитики и специалисты по Machine Learning часто сталкиваются с аномалиями в данных – случаями, которые не принадлежат к известному шаблону и выделяются, статистически отличаются от остальных наблюдений. Существует 3 типа аномалий:
• точечная аномалия, когда одна точка данных (наблюдение) в датасете находится далеко от остальных данных и представляет собой экстремум, неравномерность или отклонение, возникающее случайным образом и не связанное с общей закономерностью в данных. Точечная аномалия также известна как глобальный выброс, поскольку она значительно отличается от остального набора данных.
• контекстная аномалия, когда отдельный экземпляр выпадает из рассматриваемого контекста. Например, в случае данных временных рядов, таких как записи определенного количества во времени, контекст является временным. Точки данных, которые сильно отличаются от других данных в том же контексте, называются контекстуальными выбросами. К примеру, когда количество автомобилей, проезжающих через КПП на границе региона в марте, в среднем равно 1 тыс. за последние 20 лет. А в июне, когда стартует отпускной период, это число возрастает до 8 тысяч. Если число достигает 9 тысяч в марте, это будет считаться аномалией, а в летний период – не будет аномалией. Для ритейла характерно наблюдать всплеск числа покупателей в праздничный сезон. Но резкое увеличение продаж вне праздников или распродаж, можно назвать контекстуальным выбросом.
• Коллективная аномалия, когда группа коррелированных, взаимосвязанных или последовательных экземпляров значительно отличается от остальных данных, то эти точки данных в совокупности считаются аномальными. Для данных временных рядов это может выглядеть как типичные пики и спады, происходящие за пределами периода времени, когда сезонная последовательность является обычной, или как набор временных рядов, которые находятся в условиях выброса. Например, когда сразу большое количество компаний демонстрируют падение продаж в одно и то же время, хотя до этого был тренд на повышение.
https://medium.com/datadailyread/types-of-data-anomalies-2f6fb1747eb1
Дата-аналитики и специалисты по Machine Learning часто сталкиваются с аномалиями в данных – случаями, которые не принадлежат к известному шаблону и выделяются, статистически отличаются от остальных наблюдений. Существует 3 типа аномалий:
• точечная аномалия, когда одна точка данных (наблюдение) в датасете находится далеко от остальных данных и представляет собой экстремум, неравномерность или отклонение, возникающее случайным образом и не связанное с общей закономерностью в данных. Точечная аномалия также известна как глобальный выброс, поскольку она значительно отличается от остального набора данных.
• контекстная аномалия, когда отдельный экземпляр выпадает из рассматриваемого контекста. Например, в случае данных временных рядов, таких как записи определенного количества во времени, контекст является временным. Точки данных, которые сильно отличаются от других данных в том же контексте, называются контекстуальными выбросами. К примеру, когда количество автомобилей, проезжающих через КПП на границе региона в марте, в среднем равно 1 тыс. за последние 20 лет. А в июне, когда стартует отпускной период, это число возрастает до 8 тысяч. Если число достигает 9 тысяч в марте, это будет считаться аномалией, а в летний период – не будет аномалией. Для ритейла характерно наблюдать всплеск числа покупателей в праздничный сезон. Но резкое увеличение продаж вне праздников или распродаж, можно назвать контекстуальным выбросом.
• Коллективная аномалия, когда группа коррелированных, взаимосвязанных или последовательных экземпляров значительно отличается от остальных данных, то эти точки данных в совокупности считаются аномальными. Для данных временных рядов это может выглядеть как типичные пики и спады, происходящие за пределами периода времени, когда сезонная последовательность является обычной, или как набор временных рядов, которые находятся в условиях выброса. Например, когда сразу большое количество компаний демонстрируют падение продаж в одно и то же время, хотя до этого был тренд на повышение.
https://medium.com/datadailyread/types-of-data-anomalies-2f6fb1747eb1
Medium
Types of Data Anomalies
Do you know what type of anomalies are you dealing with?
👍9
👍🏻10 лучших практик по именованию таблиц и полей в БД
Если бы каждый разработчик и аналитик соблюдал эти простые правила, реверс-инжиниринг стал бы приятным развлечением, а не трудоемкой работой. Чтобы облегчить работу с БД себе и коллегам, попробуйте эти простые правила:
1. Разделять слова подчеркиванием, если имя атрибута или таблицы БД состоит из 2-х и более слов. Это понятнее стиля camelCase, улучшает читаемость и снижает зависимость от платформы. Например, word_count.
2. Называть таблицы и столбцы полным и семантически понятными именами без привязки к типам данных. Экономия пары символов не даст ничего, кроме путаницы. Допустимо применять сокращения только там, где это всем известная аббревиатура.
3. Писать название атрибута со строчной буквы, чтобы избежать путаницы с ключевыми словами SQL в верхнем регистре. Это также повысит скорость набора текста.
4. Не использовать цифры в названии таблиц и столбцов.
5. Называть таблицы понятно, но кратко.
6. Называть таблицы и столбцы в единственном числе. Например, author вместо authors
7. Называть таблицы-связки в алфавитном порядке. Например, author_book
8. При создании индекса называть его по имени таблицы и столбца. Например, CREATE INDEX person_ix_first_name_last_name ON person (first_name, last_name);
9. Для столбцов типа Boolean к имени добавлять префикс is_ или has_ . Например, is_admin или has_membership.
10. Для столбцов типа Date-Time к имени добавлять суффикс _at или _time. Например, ordered_at или order_time.
https://dev.to/mohammadfaisal/how-to-design-a-clean-database-1e83
Если бы каждый разработчик и аналитик соблюдал эти простые правила, реверс-инжиниринг стал бы приятным развлечением, а не трудоемкой работой. Чтобы облегчить работу с БД себе и коллегам, попробуйте эти простые правила:
1. Разделять слова подчеркиванием, если имя атрибута или таблицы БД состоит из 2-х и более слов. Это понятнее стиля camelCase, улучшает читаемость и снижает зависимость от платформы. Например, word_count.
2. Называть таблицы и столбцы полным и семантически понятными именами без привязки к типам данных. Экономия пары символов не даст ничего, кроме путаницы. Допустимо применять сокращения только там, где это всем известная аббревиатура.
3. Писать название атрибута со строчной буквы, чтобы избежать путаницы с ключевыми словами SQL в верхнем регистре. Это также повысит скорость набора текста.
4. Не использовать цифры в названии таблиц и столбцов.
5. Называть таблицы понятно, но кратко.
6. Называть таблицы и столбцы в единственном числе. Например, author вместо authors
7. Называть таблицы-связки в алфавитном порядке. Например, author_book
8. При создании индекса называть его по имени таблицы и столбца. Например, CREATE INDEX person_ix_first_name_last_name ON person (first_name, last_name);
9. Для столбцов типа Boolean к имени добавлять префикс is_ или has_ . Например, is_admin или has_membership.
10. Для столбцов типа Date-Time к имени добавлять суффикс _at или _time. Например, ordered_at или order_time.
https://dev.to/mohammadfaisal/how-to-design-a-clean-database-1e83
DEV Community
How to Design a Clean Database
To read more articles like this, visit my blog 18 best practices to keep names simple and...
👍14
🔥Вместо Jupyter Notebook: преимущества Deepnote
Блокноты Jupyter уже много лет активно используются дата-анлитиками и специалистами по ML. Однако, несмотря на его популярность этого инструмента для исследований, он имеет существенные недостатки:
• Сложность в управлении версиями кода. Поскольку блокноты Jupyter хранятся в виде больших файлов JSON, объединение двух блокнотов практически невозможно. Как и использование привычного разработчикам Git-подобного инструмента версионности.
• Отсутствие интеграции с IDE, подсветки кода и подсказок. Обычно Data Scientist не является профессиональным разработчиком ПО, и поэтому инструменты, которые регулируют качество кода и помогают его улучшить, очень важны.
• Трудности в разработке через тестирование. Популярная методология разработки через тестирование (test-driven development) практически нереализуема в блокнотах Jupyter. Поэтому их нельзя использовать в серьезных конвейерах данных.
• Нелинейный рабочий процесс из-за перехода от одной ячейки к другой. Это может привести к невоспроизводимым экспериментам. Интерактивный способ кодирования и переходов между ячейками является одновременно одной из лучших функций Jupyter Notebook и его самой большой слабостью.
• Jupyter плохо подходит для выполнения длинных асинхронных задач с огромными объемами данных.
😡
Многие из этих недостатков устранены в альтернативе Jupyter Notebook под название Deepnote. Deepnote, как и Jupyter, представляет собой интерактивный блокнот для решения DS-задач, однако выигрывает у конкурента по ряду преимуществ 💥:
• Совместная работа в реальном времени – подобно Google-документам, можно поделиться ссылкой на свой блокнот с коллегами, предоставив каждому нужный уровень доступа (просмотр, выполнение, комментирование, редактирование и полный доступ). Кроме того, каждая ячейка в Deepnote позволяет соавтору оставлять комментарии, избавляя от необходимости переключаться между приложениями для обмена сообщениями и кодом для предоставления отзыва. Имея доступ к коду разработчика, менеджеры и другие члены команды могут легко отслеживать ход разработки кода и жизненный цикл разработки.
• Простое развертывание управляемой среды - Deepnote берет на себя работу по установке модулей и настройке среды для запуска Python, включая управление версиями. Дополнительно к Python, Deepnote также поддерживает выполнение SQL-запросов.
• Deepnote имеет возможность встраивать блоки кода в блоги и другие репозитории, устраняя необходимость создавать GitHub специально для этой цели. Ячейки Deepnote позволяют встроить только код, встроить только выходные данные и встроить как код, так и выходные данные.
• Визуализация данных - блокноты Jupyter почти не предоставляют способов выполнения EDA без явного написания кода. Deepnote предоставляет инструмент визуализации в самом блокноте - блок визуализации позволяет генерировать информацию, как и с библиотеками Python, но без необходимости написания кода.
• Экономия времени и денег - поскольку Deepnote отвечает за управление кодом и его обработку, командам не нужно передавать свои кодовые конвейеры в такие инструменты, как GitHub, BitBucket и т. д., тем самым снижая эксплуатационные расходы.
Попробуйте бесплатно: https://deepnote.com/
Блокноты Jupyter уже много лет активно используются дата-анлитиками и специалистами по ML. Однако, несмотря на его популярность этого инструмента для исследований, он имеет существенные недостатки:
• Сложность в управлении версиями кода. Поскольку блокноты Jupyter хранятся в виде больших файлов JSON, объединение двух блокнотов практически невозможно. Как и использование привычного разработчикам Git-подобного инструмента версионности.
• Отсутствие интеграции с IDE, подсветки кода и подсказок. Обычно Data Scientist не является профессиональным разработчиком ПО, и поэтому инструменты, которые регулируют качество кода и помогают его улучшить, очень важны.
• Трудности в разработке через тестирование. Популярная методология разработки через тестирование (test-driven development) практически нереализуема в блокнотах Jupyter. Поэтому их нельзя использовать в серьезных конвейерах данных.
• Нелинейный рабочий процесс из-за перехода от одной ячейки к другой. Это может привести к невоспроизводимым экспериментам. Интерактивный способ кодирования и переходов между ячейками является одновременно одной из лучших функций Jupyter Notebook и его самой большой слабостью.
• Jupyter плохо подходит для выполнения длинных асинхронных задач с огромными объемами данных.
😡
Многие из этих недостатков устранены в альтернативе Jupyter Notebook под название Deepnote. Deepnote, как и Jupyter, представляет собой интерактивный блокнот для решения DS-задач, однако выигрывает у конкурента по ряду преимуществ 💥:
• Совместная работа в реальном времени – подобно Google-документам, можно поделиться ссылкой на свой блокнот с коллегами, предоставив каждому нужный уровень доступа (просмотр, выполнение, комментирование, редактирование и полный доступ). Кроме того, каждая ячейка в Deepnote позволяет соавтору оставлять комментарии, избавляя от необходимости переключаться между приложениями для обмена сообщениями и кодом для предоставления отзыва. Имея доступ к коду разработчика, менеджеры и другие члены команды могут легко отслеживать ход разработки кода и жизненный цикл разработки.
• Простое развертывание управляемой среды - Deepnote берет на себя работу по установке модулей и настройке среды для запуска Python, включая управление версиями. Дополнительно к Python, Deepnote также поддерживает выполнение SQL-запросов.
• Deepnote имеет возможность встраивать блоки кода в блоги и другие репозитории, устраняя необходимость создавать GitHub специально для этой цели. Ячейки Deepnote позволяют встроить только код, встроить только выходные данные и встроить как код, так и выходные данные.
• Визуализация данных - блокноты Jupyter почти не предоставляют способов выполнения EDA без явного написания кода. Deepnote предоставляет инструмент визуализации в самом блокноте - блок визуализации позволяет генерировать информацию, как и с библиотеками Python, но без необходимости написания кода.
• Экономия времени и денег - поскольку Deepnote отвечает за управление кодом и его обработку, командам не нужно передавать свои кодовые конвейеры в такие инструменты, как GitHub, BitBucket и т. д., тем самым снижая эксплуатационные расходы.
Попробуйте бесплатно: https://deepnote.com/
Deepnote
Deepnote: Collaborative analytics & data science notebook
Explore data with Python & SQL, work together with your team, and share insights that lead to action — all in one place with Deepnote.
👍18🔥3
💥Вместо циклов: 3 альтернативы в Python
Разработчики и Data Scientist’ы знают, что циклы в Python работают медленно. Вместо них можно использовать следующие альтернативы:
• Map – позволяет применить функцию к каждому значению итерируемого объекта (список, кортеж и т. д.);
• Filter – подойдет для фильтрации значений из итерируемого объекта (списка, кортежа, наборов и т. д.). Условия фильтрации задаются внутри функции, которая передается в качестве аргумента функции фильтра.
• Reduce - применяется итеративно ко всем значениям итерируемого объекта и возвращает только одно значение.
Примеры использования: https://medium.com/codex/3-most-effective-yet-underutilized-functions-in-python-d865ffaca0bb
Разработчики и Data Scientist’ы знают, что циклы в Python работают медленно. Вместо них можно использовать следующие альтернативы:
• Map – позволяет применить функцию к каждому значению итерируемого объекта (список, кортеж и т. д.);
• Filter – подойдет для фильтрации значений из итерируемого объекта (списка, кортежа, наборов и т. д.). Условия фильтрации задаются внутри функции, которая передается в качестве аргумента функции фильтра.
• Reduce - применяется итеративно ко всем значениям итерируемого объекта и возвращает только одно значение.
Примеры использования: https://medium.com/codex/3-most-effective-yet-underutilized-functions-in-python-d865ffaca0bb
Medium
Don’t Run Loops in Python, Instead, Use These!
No need to run loops in Python anymore
👍5🤔4
🤔Хозяйке Data Scientist’у на заметку: Python-библиотека для работы с календарем
Python включает встроенный модуль календаря, который обрабатывает операции, связанные с датой и днями недели. Функции и классы этого модуля используют европейский календарь, где понедельник является первым днем недели, а воскресенье — последним.
Чтобы использовать эту библиотеку, ее нужно сперва импортировать в свой код:
import calendar
Затем можно вызвать функции, например, вывести имена месяцев в списке:
month_names = list(calendar.month_name[1:])
print(month_names)
https://docs.python.org/3/library/calendar.html
Python включает встроенный модуль календаря, который обрабатывает операции, связанные с датой и днями недели. Функции и классы этого модуля используют европейский календарь, где понедельник является первым днем недели, а воскресенье — последним.
Чтобы использовать эту библиотеку, ее нужно сперва импортировать в свой код:
import calendar
Затем можно вызвать функции, например, вывести имена месяцев в списке:
month_names = list(calendar.month_name[1:])
print(month_names)
https://docs.python.org/3/library/calendar.html
👍8
#тест
Вероятность отвергнуть нулевую гипотезу при заданном распределении наблюдений это
Вероятность отвергнуть нулевую гипотезу при заданном распределении наблюдений это
Anonymous Quiz
55%
Ошибка 2-го рода
16%
Плотность вероятности
18%
Функция мощности
11%
Случайная величина
👍13
🗒Нужно логировать события Python-приложения? Есть специальный модуль!
Python-библиотека logging (https://docs.python.org/3/library/logging.html) определяет функции и классы, реализующие гибкую систему регистрации событий для приложений и библиотек. Главное преимущество API-интерфейса логироавния, предоставляемого модулем этой стандартной библиотеки, - возможность регистрации всех событий. Поэтому лог Python-приложения может включать собственные сообщения, интегрированные с сообщениями из сторонних модулей.
Модуль состоит из следующих классов:
• Регистраторы предоставляют интерфейс, который непосредственно использует код приложения
• Обработчики отправляют записи журнала (созданные регистраторами) в место назначения
• Фильтры обеспечивают более точное определение записей журнала для вывода
• Форматеры определяют расположение записей журнала в конечном выводе.
Уровень лога показывает его серьезность, т.е. насколько важно отдельное сообщение. В базовом уровне логирования DEBUG имеет самый низкий приоритет, а CRITICAL — самый высокий. Если определить регистратор чувствительным к сообщениям журнала, начиная с уровня DEBUG, то все все наши зарегистрированные сообщения будут отображаться, поскольку DEBUG является самым низким уровнем. Можно настроить отображение только событий с типом ERROR и CRITICAL.
Пример кода: https://medium.com/@DavidElvis/logging-for-ml-systems-1b055005c2c2
Python-библиотека logging (https://docs.python.org/3/library/logging.html) определяет функции и классы, реализующие гибкую систему регистрации событий для приложений и библиотек. Главное преимущество API-интерфейса логироавния, предоставляемого модулем этой стандартной библиотеки, - возможность регистрации всех событий. Поэтому лог Python-приложения может включать собственные сообщения, интегрированные с сообщениями из сторонних модулей.
Модуль состоит из следующих классов:
• Регистраторы предоставляют интерфейс, который непосредственно использует код приложения
• Обработчики отправляют записи журнала (созданные регистраторами) в место назначения
• Фильтры обеспечивают более точное определение записей журнала для вывода
• Форматеры определяют расположение записей журнала в конечном выводе.
Уровень лога показывает его серьезность, т.е. насколько важно отдельное сообщение. В базовом уровне логирования DEBUG имеет самый низкий приоритет, а CRITICAL — самый высокий. Если определить регистратор чувствительным к сообщениям журнала, начиная с уровня DEBUG, то все все наши зарегистрированные сообщения будут отображаться, поскольку DEBUG является самым низким уровнем. Можно настроить отображение только событий с типом ERROR и CRITICAL.
Пример кода: https://medium.com/@DavidElvis/logging-for-ml-systems-1b055005c2c2
Medium
Logging for ML Systems
Logging is the process of tracking and recording key events that occur in our applications. We want to log events so we can use them to…
👍2
🍁ТОП-10 DS-событий сентября
Скоро начинается очередной учебный год, а также новый сезон конференций, митапов и прочих DS-тусовок:
• 6 сентября в 18:30 – митап Авито для продуктовых и дата-аналитиков: как оптимизировать сроки доставки и подобрать метрику, которая устроит всю команду, кейс про изменение правил купли-продажи автомобилей через Авито Аукцион. https://avitotech.timepad.ru/event/2136079/ Москва ул. Лесная, 7
• 9-10 сентября - Конференция CrossConf https://crossconf.com/ Казань, Иннополис,
• 18 сентября - HackConf 2022 – большая встреча разработчиков, безопасников, сисадминов из IT сообществ с докладами, холиварами и прочими классическими тематическими развлечениями. Есть секция ML/AI/. https://hackconf.ru/. Санкт-Петербург, пл. Победы, д. 1, Park Inn Пулковская
• 22 сентября – CDI Conf 2022 - конференция IT-компании HFLabs посвящена трендам в работе с клиентскими данными: обмен обезличенными данными, управление клиентскими согласиями, новые инструменты маркетинга. Участие бесплатное, необходима предварительная регистрация. https://cdiconf.ru/ Москва, Цветной бульвар, д. 15 стр. 1, Пространство Omega Rooftop
• 22-23 сентября – Saint HighLoad++ 2022 - профессиональная конференция разработчиков высоконагруженных систем https://highload.ru/spb/2022 Санкт-Петербург, DESIGN DISTRICT DAA
• 23 сентября – Yandex Scale - большая конференция Yandex Cloud, где бизнес и технологии говорят на одном языке https://scale.yandex.ru/. Москва, в кинотеатре Октябрь, ул. Новый Арбат, 24
• 25-27 сентября – ежегодный ИТ-конгресс "Подмосковные вечера 2022" https://pv2022.4cio.ru/ Москва, Подмосковье, СПА-ОТЕЛЬ СВЕЖИЙ ВЕТЕР
• 26-27 сентября - Saint TeamLead Conf 2022 https://teamleadconf.ru/spb/2022 Санкт-Петербург, DESIGN DISTRICT DAA
• 29-30 сентября - форум "Marketing Data Analytics". https://interforums.ru/mda22/home Москва, Холидей Инн Москва Сущевский
• 29 сентября - конференция "Искусственный интеллект: от пилота к промышленной эксплуатации" от CNews https://events.cnews.ru/events/iskusstvennyi_intellekt_2022_2022-09-29.shtml
Скоро начинается очередной учебный год, а также новый сезон конференций, митапов и прочих DS-тусовок:
• 6 сентября в 18:30 – митап Авито для продуктовых и дата-аналитиков: как оптимизировать сроки доставки и подобрать метрику, которая устроит всю команду, кейс про изменение правил купли-продажи автомобилей через Авито Аукцион. https://avitotech.timepad.ru/event/2136079/ Москва ул. Лесная, 7
• 9-10 сентября - Конференция CrossConf https://crossconf.com/ Казань, Иннополис,
• 18 сентября - HackConf 2022 – большая встреча разработчиков, безопасников, сисадминов из IT сообществ с докладами, холиварами и прочими классическими тематическими развлечениями. Есть секция ML/AI/. https://hackconf.ru/. Санкт-Петербург, пл. Победы, д. 1, Park Inn Пулковская
• 22 сентября – CDI Conf 2022 - конференция IT-компании HFLabs посвящена трендам в работе с клиентскими данными: обмен обезличенными данными, управление клиентскими согласиями, новые инструменты маркетинга. Участие бесплатное, необходима предварительная регистрация. https://cdiconf.ru/ Москва, Цветной бульвар, д. 15 стр. 1, Пространство Omega Rooftop
• 22-23 сентября – Saint HighLoad++ 2022 - профессиональная конференция разработчиков высоконагруженных систем https://highload.ru/spb/2022 Санкт-Петербург, DESIGN DISTRICT DAA
• 23 сентября – Yandex Scale - большая конференция Yandex Cloud, где бизнес и технологии говорят на одном языке https://scale.yandex.ru/. Москва, в кинотеатре Октябрь, ул. Новый Арбат, 24
• 25-27 сентября – ежегодный ИТ-конгресс "Подмосковные вечера 2022" https://pv2022.4cio.ru/ Москва, Подмосковье, СПА-ОТЕЛЬ СВЕЖИЙ ВЕТЕР
• 26-27 сентября - Saint TeamLead Conf 2022 https://teamleadconf.ru/spb/2022 Санкт-Петербург, DESIGN DISTRICT DAA
• 29-30 сентября - форум "Marketing Data Analytics". https://interforums.ru/mda22/home Москва, Холидей Инн Москва Сущевский
• 29 сентября - конференция "Искусственный интеллект: от пилота к промышленной эксплуатации" от CNews https://events.cnews.ru/events/iskusstvennyi_intellekt_2022_2022-09-29.shtml
avitotech.timepad.ru
Avito Analytics meetup #7 / События на TimePad.ru
6 сентября в 18:30 в московском офисе Авито пройдёт митап для продуктовых и дата-аналитиков. Спикеры из Авито и Тинькофф расскажут, как оптимизировать сроки доставки и подобрать метрику, которая устроит всю команду. А ещё на митапе будет представлен кейс…
🔥3👍1
Forwarded from Аналитика больших данных (Very Big Anal)
Грустно и точка: В России разрабатывается нейросеть для выявления депрессии
В России делают нейросеть для поиска депрессии. Исследователи утверждают, что им удалось выявить маркеры депрессивного расстройства у людей и удалось обучить ИИ выявлять их.
Первый в России информационный продукт поможет выявить депрессию на основе речевого анализа. Удалось собрать достаточно данных, чтобы подтвердить, что для пациентов с депрессивными симптомами характерно большое число специфических речевых особенностей. Речь идет о скорости речи, интонационной окраске, паузах между словами и других параметров. Машинное обучение позволит алгоритму отбирать необходимые параметры на основе больших выборок данных.
Разработчики обещают мобильное приложение, которое будет анализировать речь пользователя и в случае чего посоветует обратиться к специалисту.
@verybiganal
В России делают нейросеть для поиска депрессии. Исследователи утверждают, что им удалось выявить маркеры депрессивного расстройства у людей и удалось обучить ИИ выявлять их.
Первый в России информационный продукт поможет выявить депрессию на основе речевого анализа. Удалось собрать достаточно данных, чтобы подтвердить, что для пациентов с депрессивными симптомами характерно большое число специфических речевых особенностей. Речь идет о скорости речи, интонационной окраске, паузах между словами и других параметров. Машинное обучение позволит алгоритму отбирать необходимые параметры на основе больших выборок данных.
Разработчики обещают мобильное приложение, которое будет анализировать речь пользователя и в случае чего посоветует обратиться к специалисту.
@verybiganal
🤔1
🖕🏻3 повода использовать оператор присваивания в Python и пара причин этого не делать
Использование оператора присваивания значений, обозначаемого :=, дает следующие преимущества:
• Сокращение количества вызовов функций, например, result = [y := func(x), y**2, y**3] вместо result = [func(x), func(x)**2, func(x)**3]
• Сокращение вложенных условных выражений, например, при использовании сопоставления регулярных выражений за счет удаления вложенных условий if
• Упрощение циклов while, например, при построчном чтении файлов или при получении данных из сокета. Вместо фиктивного бесконечного цикла while с делегированием потока управления оператору break можно использовать оператор присваивания для переназначения значения команды, а затем применить его в условном цикле while в той же строке, что сделает код намного короче.
Разумеется, есть ограничения для использования этого оператора. Например, не рекомендуется применять его с with, т.к. при работе с ContextManager() контекст привязывается к возвращаемому значению, т.е. к результату выполнения этого метода. Это может создать трудности при отладке.
Кроме того, присваивание следует заключать в круглые скобки, чтобы убедиться, что результат присваивается переменной, иначе вычисление может быть выполнено в другом порядке.
Примеры кода: https://betterprogramming.pub/should-you-be-using-pythons-walrus-operator-yes-and-here-s-why-36297be16907
Использование оператора присваивания значений, обозначаемого :=, дает следующие преимущества:
• Сокращение количества вызовов функций, например, result = [y := func(x), y**2, y**3] вместо result = [func(x), func(x)**2, func(x)**3]
• Сокращение вложенных условных выражений, например, при использовании сопоставления регулярных выражений за счет удаления вложенных условий if
• Упрощение циклов while, например, при построчном чтении файлов или при получении данных из сокета. Вместо фиктивного бесконечного цикла while с делегированием потока управления оператору break можно использовать оператор присваивания для переназначения значения команды, а затем применить его в условном цикле while в той же строке, что сделает код намного короче.
Разумеется, есть ограничения для использования этого оператора. Например, не рекомендуется применять его с with, т.к. при работе с ContextManager() контекст привязывается к возвращаемому значению, т.е. к результату выполнения этого метода. Это может создать трудности при отладке.
Кроме того, присваивание следует заключать в круглые скобки, чтобы убедиться, что результат присваивается переменной, иначе вычисление может быть выполнено в другом порядке.
Примеры кода: https://betterprogramming.pub/should-you-be-using-pythons-walrus-operator-yes-and-here-s-why-36297be16907
Medium
Should You Be Using Python’s Walrus Operator? (Yes. And Here’s Why)
Python’s controversial assignment expression — also known as walrus operator — can improve your code, and it’s time you start using it!
👍8
Как организовать потоковую обработку данных. Часть 2!
В первой части Евгений Ненахов из центра Big Data МТС Digital рассказал об основных компонентах методологии, а сейчас — о том, как ими пользоваться.
Из новой статьи вы узнаете:
➖ где хранить конфигурации
➖ как настроить Kafka и Spark Streaming
➖ как снизить нагрузку на GC и многое другое
О том, как создать универсальный инструмент потоковой обработки данных и построить с его помощью мощную систему стриминга, способную обрабатывать 7 млн событий в пике, читайте в блоге МТС на Хабре.
В первой части Евгений Ненахов из центра Big Data МТС Digital рассказал об основных компонентах методологии, а сейчас — о том, как ими пользоваться.
Из новой статьи вы узнаете:
➖ где хранить конфигурации
➖ как настроить Kafka и Spark Streaming
➖ как снизить нагрузку на GC и многое другое
О том, как создать универсальный инструмент потоковой обработки данных и построить с его помощью мощную систему стриминга, способную обрабатывать 7 млн событий в пике, читайте в блоге МТС на Хабре.
👍3
🚀Быстро нужен наглядный дэшборд? Попробуй Panel!
Каждый дата-аналитик знает, что на дэшборде надо обобщить наиболее важные ключевые показатели для ЛПР. С одной стороны, дэшборд представляет собой простую HTML-страницу для визуализации графиков и текста. С другой стороны, сделать его наглядным и не перегруженным, не так-то просто. Более того, далеко не каждый BI-специалист имеет дизайнерский вкус и навыки работы с HTML-компонентами и их взаимодействия в Javascript. А вот Python дата-специалисты используют активно.
Создать дэшборд только с Python поможет Panel — Python-библиотека с открытым исходным кодом, которая позволяет создавать настраиваемые интерактивные веб-приложения и информационные панели, подключая определяемые пользователем виджеты к графикам, изображениям, таблицам или тексту. С ней не нужно знать, как создавать HTML-компоненты и их взаимодействие в Javascript, потому что пишется на Python.
Panel поддерживает почти все библиотеки построения графиков, работает так же хорошо в блокноте Jupyter, как и на отдельном защищенном веб-сервере. При этом Panel использует один и тот же код, поддерживает как Python, так и статический HTML/JavaScript, экспортирует приложения и может использоваться для разработки многофункциональных интерактивных приложений без привязки кода, специфичного для предметной области, к какому-либо конкретному графическому интерфейсу или веб-инструментам.
Panel упрощает:
• использование Python-инструментов анализа и визуализации данных:
• разработку в IDE или среде ноутбука с простым развертыванием приложения;
• быстрое создание прототипов приложений и дэшбордов, предлагая отточенные шаблоны для окончательного развертывания;
• глубокую интерактивность, передавая взаимодействие и события на стороне клиента в Python;
• потоковую передачу больших и малых данных во внешний интерфейс;
• аутентификацию в приложении с помощью встроенных поставщиков OAuth.
Пример использования: https://medium.com/@jairotunior/advanced-interactive-dashboards-in-python-cc2927dcde07
Каждый дата-аналитик знает, что на дэшборде надо обобщить наиболее важные ключевые показатели для ЛПР. С одной стороны, дэшборд представляет собой простую HTML-страницу для визуализации графиков и текста. С другой стороны, сделать его наглядным и не перегруженным, не так-то просто. Более того, далеко не каждый BI-специалист имеет дизайнерский вкус и навыки работы с HTML-компонентами и их взаимодействия в Javascript. А вот Python дата-специалисты используют активно.
Создать дэшборд только с Python поможет Panel — Python-библиотека с открытым исходным кодом, которая позволяет создавать настраиваемые интерактивные веб-приложения и информационные панели, подключая определяемые пользователем виджеты к графикам, изображениям, таблицам или тексту. С ней не нужно знать, как создавать HTML-компоненты и их взаимодействие в Javascript, потому что пишется на Python.
Panel поддерживает почти все библиотеки построения графиков, работает так же хорошо в блокноте Jupyter, как и на отдельном защищенном веб-сервере. При этом Panel использует один и тот же код, поддерживает как Python, так и статический HTML/JavaScript, экспортирует приложения и может использоваться для разработки многофункциональных интерактивных приложений без привязки кода, специфичного для предметной области, к какому-либо конкретному графическому интерфейсу или веб-инструментам.
Panel упрощает:
• использование Python-инструментов анализа и визуализации данных:
• разработку в IDE или среде ноутбука с простым развертыванием приложения;
• быстрое создание прототипов приложений и дэшбордов, предлагая отточенные шаблоны для окончательного развертывания;
• глубокую интерактивность, передавая взаимодействие и события на стороне клиента в Python;
• потоковую передачу больших и малых данных во внешний интерфейс;
• аутентификацию в приложении с помощью встроенных поставщиков OAuth.
Пример использования: https://medium.com/@jairotunior/advanced-interactive-dashboards-in-python-cc2927dcde07
Medium
Advanced Interactive Dashboards in Python
Connect differents APIs to create an advanced interactive dashboard for analysis.
👍8
🤔PandaSQL: Python-комбо для Data Scientis’а
SQL и Pandas – самые популярные инструменты дата-аналитика для управления табличными данными, их обработки и анализа. Их можно использовать по отдельности, а можно сразу в Python-пакете PandaSQL, который предоставляет возможности синтаксиса SQL в среде Python. PandaSQL позволяет запрашивать датафреймы Pandas средствами синтаксиса SQL.
PandaSQL – отличный инструмент для тех, кто знает SQL и не знаком с синтаксисом Python, который требуется Pandas. Например, в Pandas фильтрация датафрейма или группировка по определенному столбцу при агрегировании нескольких столбцов может показаться запутанной, в отличии от SQL. Однако эта простота использования SQL в Pandas сопряжена с огромными затратами избыточного времени выполнения. Например, чтобы рассчитать количество строк, PandaSQL требует почти в 100 раз больше времени выполнения, чем Pandas.
Кроме того, Python уже имеет множество имен, которые зарезервированы как ключевые слова, такие как for, while, in, if, else, elif, import, as и т. д. SQL вводит дополнительные ограничения на имена переменных за счет собственных ключевых слов: create, like, where, having.
Таким образом, с PandaSQL имеет смысл познакомиться, но этот интересный инструмент не подойдет для промышленного конвейера аналитики данных.
Примеры использования и сравнения времени выполнения: https://towardsdatascience.com/the-downsides-of-pandasql-that-no-one-talks-about-9b63c664bef4
SQL и Pandas – самые популярные инструменты дата-аналитика для управления табличными данными, их обработки и анализа. Их можно использовать по отдельности, а можно сразу в Python-пакете PandaSQL, который предоставляет возможности синтаксиса SQL в среде Python. PandaSQL позволяет запрашивать датафреймы Pandas средствами синтаксиса SQL.
PandaSQL – отличный инструмент для тех, кто знает SQL и не знаком с синтаксисом Python, который требуется Pandas. Например, в Pandas фильтрация датафрейма или группировка по определенному столбцу при агрегировании нескольких столбцов может показаться запутанной, в отличии от SQL. Однако эта простота использования SQL в Pandas сопряжена с огромными затратами избыточного времени выполнения. Например, чтобы рассчитать количество строк, PandaSQL требует почти в 100 раз больше времени выполнения, чем Pandas.
Кроме того, Python уже имеет множество имен, которые зарезервированы как ключевые слова, такие как for, while, in, if, else, elif, import, as и т. д. SQL вводит дополнительные ограничения на имена переменных за счет собственных ключевых слов: create, like, where, having.
Таким образом, с PandaSQL имеет смысл познакомиться, но этот интересный инструмент не подойдет для промышленного конвейера аналитики данных.
Примеры использования и сравнения времени выполнения: https://towardsdatascience.com/the-downsides-of-pandasql-that-no-one-talks-about-9b63c664bef4
PyPI
pandasql
sqldf for pandas
👍11
#тест
Какой статистический термин является расширением дисперсии и описывает движение переменных относительно друг друга?
Какой статистический термин является расширением дисперсии и описывает движение переменных относительно друг друга?
Anonymous Quiz
33%
Корреляция
56%
Ковариация
3%
Интерпретация
8%
Дельта
👍8🤯4
👀Наглядный ETL с VDP
VDP (Visual Data Preparation) — это инструмент ETL визуальных данных с открытым исходным кодом для оптимизации сквозного конвейера обработки визуальных данных. Он включает извлечение неструктурированных визуальных данных из предварительно созданных источников данных, таких как облачное/локальное хранилище или устройства IoT, их преобразование в анализируемые структурированные данные с помощью моделей Vision AI и загрузку обработанных данные в хранилища, приложения или другие места назначения.
VDP оптимизирует сквозной конвейер обработки визуальных данных, позволяя разработчикам не создавать свои собственные коннекторы, платформы обслуживания моделей и инструменты автоматизации ELT. С VDP интеграция визуальных данных становится проще и быстрее. VDP выпущена под лицензией Apache 2.0, доступна для локального и облачного развертывания в Kubernetes. VDP построен с точки зрения управления данными, чтобы оптимизировать сквозной поток визуальных данных с помощью компонента преобразования, который может гибко импортировать модели Vision AI из разных источников. Построение ETL-конвейера становится похоже на сборку из готовых блоков, как в детском конструкторе. А высокая производительность обеспечивается бэкэндом на Go с Triton Inference Server с мощными архитектурами графических процессоров NVIDIA, поддерживающими TensorRT, PyTorch, TensorFlow, ONNX и Python.
VDP также соответствует идеям MLOps, позволяя импортировать и развертывать ML/DL-модели одним щелчком мыши из GitHub, Hugging Face или облачного хранилища, управляемого инструментами контроля версий, такими как DVC или ArtiVC. Стандартизированные форматы вывода CV Task упрощают работу с хранилищем данных, а готовые ETL-коннекторы обеспечивают расширенный доступ к данным благодаря интеграции с Airbyte.
VDP поддерживает различные сценарии исполььзования: синхронный режим для логических выводов в реальном времени и асинхронный - для рабочей нагрузки по запросу. Масштабируемый микросервисный дизайн на основе API удобен для разработчика за счет бесшовной интеграции с современным стеком данных. NoCode/Low Code интерфейсы снижают порог входа в технологию, предоставляя Data Scientist’у и аналитику независимость от инженерии данных.
https://github.com/instill-ai/vdp
VDP (Visual Data Preparation) — это инструмент ETL визуальных данных с открытым исходным кодом для оптимизации сквозного конвейера обработки визуальных данных. Он включает извлечение неструктурированных визуальных данных из предварительно созданных источников данных, таких как облачное/локальное хранилище или устройства IoT, их преобразование в анализируемые структурированные данные с помощью моделей Vision AI и загрузку обработанных данные в хранилища, приложения или другие места назначения.
VDP оптимизирует сквозной конвейер обработки визуальных данных, позволяя разработчикам не создавать свои собственные коннекторы, платформы обслуживания моделей и инструменты автоматизации ELT. С VDP интеграция визуальных данных становится проще и быстрее. VDP выпущена под лицензией Apache 2.0, доступна для локального и облачного развертывания в Kubernetes. VDP построен с точки зрения управления данными, чтобы оптимизировать сквозной поток визуальных данных с помощью компонента преобразования, который может гибко импортировать модели Vision AI из разных источников. Построение ETL-конвейера становится похоже на сборку из готовых блоков, как в детском конструкторе. А высокая производительность обеспечивается бэкэндом на Go с Triton Inference Server с мощными архитектурами графических процессоров NVIDIA, поддерживающими TensorRT, PyTorch, TensorFlow, ONNX и Python.
VDP также соответствует идеям MLOps, позволяя импортировать и развертывать ML/DL-модели одним щелчком мыши из GitHub, Hugging Face или облачного хранилища, управляемого инструментами контроля версий, такими как DVC или ArtiVC. Стандартизированные форматы вывода CV Task упрощают работу с хранилищем данных, а готовые ETL-коннекторы обеспечивают расширенный доступ к данным благодаря интеграции с Airbyte.
VDP поддерживает различные сценарии исполььзования: синхронный режим для логических выводов в реальном времени и асинхронный - для рабочей нагрузки по запросу. Масштабируемый микросервисный дизайн на основе API удобен для разработчика за счет бесшовной интеграции с современным стеком данных. NoCode/Low Code интерфейсы снижают порог входа в технологию, предоставляя Data Scientist’у и аналитику независимость от инженерии данных.
https://github.com/instill-ai/vdp
GitHub
GitHub - instill-ai/instill-core: 🔮 Instill Core is a full-stack AI infrastructure tool for data, model and pipeline orchestration…
🔮 Instill Core is a full-stack AI infrastructure tool for data, model and pipeline orchestration, designed to streamline every aspect of building versatile AI-first applications - instill-ai/instil...
👍6