Big Data Science [RU]
1.62K subscribers
81 photos
9 videos
546 links
Big Data Science [RU] — канал о жизни Data Science.
Для сотрудничества: a.chernobrovov@gmail.com
🌏 — https://t.me/bdscience — Big Data Science channel (english version)
💼 — https://t.me/bds_job — channel about Data Science jobs and career
Download Telegram
🚀 @machinelearning_interview - здесь мы собираем все возможные вопросы и ответы с собеседований по Машинному обучению, нейронным сетям и Глубокому обучению. Для всех уровней разработчиков при поддержке авторов популярного канала Machine learning. Канал реально поможет пройти data science собеседование.
🔥3
🔥Нужен MLOps на Python? Легко с PyMLPipe!
PyMLPipe
- это легковесный Python-пакет для MLOps-процессов. Он помогает автоматизировать:
• Мониторинг модели и схемы данных
• Версионирование ML-модели и данных
• Сравнение производительности моделей
• Развертывание API в один клик
Эта библиотека с открытым исходным кодом поддерживает Scikit-Learn, XGBoost, LightGBM и Pytorch. Она имеет модульную структуру, представленную набором Python-функций, упакованных в API, и наглядный GUI. PyMLPipe отлично подходит для работы с табличными данными.
https://neelindresh.github.io/pymlpipe.documentation.io/
🔥4👏1
🌸🌤В последний месяц лета 2022 можно успеть на следующие ивенты:
3 августа
- вебинар «Возможности Yandex SpeechKit и голосовых роботов МТТ VoiceBox». Онлайн, 16:00 МСК https://cloud.yandex.ru/events/593
4 августа - митап «Виртуализация на отечественном: готовы ли отечественные решения к применению в реальных проектах?». Москва, StartHub.Moscow Красный Октябрь, Берсеневская набережная д. 6, с. 3, этаж 4 https://meetup.jet.su/virtualization
4 августа - вебинар "Public cloud на российской виртуализации vStack: обзор и сценарии применения". Онлайн, 11:00 МСК https://itglobal.com/ru-ru/company/events/public-cloud-na-rossijskoj-virtualizaczii-vstack-obzor-i-sczenarii-primeneniya/
5-7 августа - хакатон DATA HACK от компании SENSE Group, ГК «Иннотех» и «Акселератор Возможностей» при ИНТЦ МГУ «Воробьёвы Горы». Кейсы: разработка статического анализатора Spark SQL-кода, разработка генератора фейковых данных для сложных запросов, создание прототипа ETL-движка из Postgres, Oracle, ClickHouse в HDFS на Spark, который будет шаблонизирован через конфигурацию. Регистрация до 01.08.2022. Призовой фонд — 300 000 рублей, а также специальные призы и подарки от партнёров. https://data-hack.ru/
11 августа – вебинар «Управляемый сервис YDB: настройка, применение, мониторинг». Онлайн, 21:00 МСК. https://cloud.yandex.ru/events/597
13 августа - Auto Tech Challenge 2022 - технологический конкурс, призванный найти инновационные решения для автомобильной промышленности и внедрить востребованные продукты и сервисы в корпорации. Конкурс проводится под эгидой группы «ГАЗ», с привлечением экспертов из «Меркатор Холдинг», «АИР Магистраль», НТИ «Автонет», МГТУ им. Н. Э. Баумана и Московского политехнического университета. https://i.moscow/tech_contests/autotech2022
🔥3
🗣Дата-аналитики говорят на SQL. Как им понять друг друга?
Каждый аналитик знает 5 правил форматирования SQL-запросов, чтобы их было легче читать:
• Писать ключевые слова (SELECT, FROM и WHERE) с новой строки без отступа
• Писать имя каждого столбца после SELECT с новой строки
• Делать отступы перед элементами условий с новой строки
• Писать подзапросы в круглых скобках с новой строки и отступами
• Писать каждое условие оператора Case с новой строки
Однако, на практике не все следуют этим простым правилам. Разумеется, специализированные IDE берут на себя функцию форматирования, например, в Visual Studio Code есть встроенные возможности форматирования запросов, и возможность подключения внешних плагинов типа SQLTools или SqlBeautifier. А если нужно прочитать 3-х этажный запрос от коллеги, представленный в виде плоского текста, помогут онлайн-форматеры, которые приведут текст SQL-запроса к читаемому виду:
• https://codebeautify.org/sqlformatter
• https://www.freeformatter.com/sql-formatter.html
• https://sqlformat.org/
👍7
👍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
👍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/
👍7
Forwarded from Digital Dinner
This media is not supported in your browser
VIEW IN TELEGRAM
Фантазии нейросети на стихи А.С. Пушкина

Видео сделано в DALL-E 2.
Озвучено нейросетью через сервис для озвучки текста - CyberVoice – генератор голоса на основе ИИ.
На данный момент использовать можно абсолютно бесплатно.

Регистрируемся > заходим в раздел тарифы > выбираем самый дорогой листая вниз (в данный момент всё бесплатно) > меню > свободный текст > новый проект > далее выбираем голос и вводим текст > жмём иконку в виде микрофона.

Голос с видео "Убийца чудовищ".

@digitaldiner
🔥8
😱3 типа аномалий в данных
Дата-аналитики и специалисты по Machine Learning часто сталкиваются с аномалиями в данных – случаями, которые не принадлежат к известному шаблону и выделяются, статистически отличаются от остальных наблюдений. Существует 3 типа аномалий:
• точечная аномалия, когда одна точка данных (наблюдение) в датасете находится далеко от остальных данных и представляет собой экстремум, неравномерность или отклонение, возникающее случайным образом и не связанное с общей закономерностью в данных. Точечная аномалия также известна как глобальный выброс, поскольку она значительно отличается от остального набора данных.
• контекстная аномалия, когда отдельный экземпляр выпадает из рассматриваемого контекста. Например, в случае данных временных рядов, таких как записи определенного количества во времени, контекст является временным. Точки данных, которые сильно отличаются от других данных в том же контексте, называются контекстуальными выбросами. К примеру, когда количество автомобилей, проезжающих через КПП на границе региона в марте, в среднем равно 1 тыс. за последние 20 лет. А в июне, когда стартует отпускной период, это число возрастает до 8 тысяч. Если число достигает 9 тысяч в марте, это будет считаться аномалией, а в летний период – не будет аномалией. Для ритейла характерно наблюдать всплеск числа покупателей в праздничный сезон. Но резкое увеличение продаж вне праздников или распродаж, можно назвать контекстуальным выбросом.
• Коллективная аномалия, когда группа коррелированных, взаимосвязанных или последовательных экземпляров значительно отличается от остальных данных, то эти точки данных в совокупности считаются аномальными. Для данных временных рядов это может выглядеть как типичные пики и спады, происходящие за пределами периода времени, когда сезонная последовательность является обычной, или как набор временных рядов, которые находятся в условиях выброса. Например, когда сразу большое количество компаний демонстрируют падение продаж в одно и то же время, хотя до этого был тренд на повышение.
https://medium.com/datadailyread/types-of-data-anomalies-2f6fb1747eb1
👍9
3 типа аномалий в данных
👍7
👍🏻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
👍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/
👍18🔥3
💥Вместо циклов: 3 альтернативы в Python
Разработчики и Data Scientist’ы знают, что циклы в Python работают медленно. Вместо них можно использовать следующие альтернативы:
• Map – позволяет применить функцию к каждому значению итерируемого объекта (список, кортеж и т. д.);
• Filter – подойдет для фильтрации значений из итерируемого объекта (списка, кортежа, наборов и т. д.). Условия фильтрации задаются внутри функции, которая передается в качестве аргумента функции фильтра.
• Reduce - применяется итеративно ко всем значениям итерируемого объекта и возвращает только одно значение.
Примеры использования: https://medium.com/codex/3-most-effective-yet-underutilized-functions-in-python-d865ffaca0bb
👍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
👍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
👍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
🔥3👍1
Грустно и точка: В России разрабатывается нейросеть для выявления депрессии

В России делают нейросеть для поиска депрессии. Исследователи утверждают, что им удалось выявить маркеры депрессивного расстройства у людей и удалось обучить ИИ выявлять их.

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

Разработчики обещают мобильное приложение, которое будет анализировать речь пользователя и в случае чего посоветует обратиться к специалисту.

@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
👍8
Как организовать потоковую обработку данных. Часть 2!

В первой части Евгений Ненахов из центра 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
👍8