Скидка до 22% на ресурсы управляемых баз данных Greenplum и OpenSearch в Yandex Cloud
Теперь у вас есть возможность резервировать определенный объем ресурсов — Committed volume of services, CVoS — с фиксированной ценой в течение полугода или года. Это предложение доступно для всех пользователей и позволяет существенно сократить расходы при стабильном потреблении сервисов.
Условия CVoS распространяются на Yandex Managed Service for Greenplum и Yandex Managed Service for OpenSearch, работающие на платформах с процессорами Intel Ice Lake. Размер скидки: 15% при резервировании на пол года и 22% при резервировании на 1 год.
➡️ Подробнее по ссылке.
⚡️OTUS приглашает посетить открытый урок по Machine Learning для начинающих.
Тема: Разведочный анализ данных на Python для Machine Learning.
Вебинар приурочен к старту онлайн-курса "Специализация Machine Learning".
Дата: 9 августа, 18:00
На занятии мы поговорим о том как проводить первичный анализ данных с использованием фреймворка Pandas. Расскажем об основных аспектах анализа данных. Научимся обрабатывать признаки и заполнять пропущенные значения.
🙎🙎♀️Кому подходит урок:
- IT-специалисту, который хочет перейти в Data Science;
- Начинающему Data Scientist, желающему углубиться в профессию;
- Тому, кто самостоятельно изучает Data Science;
- Для того, кто хочет войти в IT, но не знает что выбрать.
После урока будет открыт доступ ко второму занятию "Введение в Machine Learning", а курс можно будет приобрести в рассрочку по спец.цене.
👉Регистрация: https://otus.pw/l2Tq/
📚Tricking Data Science
Настоящие кладезь знаний для дата сайентистов.
Будучи программистом, вы часто натыкаетесь на изящные трюки с кодом на StackOverflow или в блогах крутых специалистов и думаете про себя: "Эй, я должен это сохранить".
Вы сохраняете страницу в закладки, а через день забываете про это навсегда.
Но в голове у вас остается размытое значение, что есть какой-то действительно классный способ решения задачи, но вы не можете его вспомнить и написать код. С этим сталкиваются многие программисты, и все они по-разному справляются с этим (или не справляются) с этим. Так вот, эта книга - отличный способ справиться с этой проблемой.
Tricking Data Science - это коллекция фишек с кодом, советов, гайдов, проектов, библиотек, которые автор собрал за два года о науке о данных на Medium. Проект в виде книги опубликован в Jupyter Book.
📔 Книга
@data_analysis_ml
🚀Petals
Petals — это фреймворк, который позволяет дата сайентистам совместно запускать большие языковые модели.
Вы загружаете небольшую часть модели, а затем объединяетесь с людьми, обслуживающими другие части, для проведения вычислений или файнтюнига.
Инструмент позволяет генерировать текст с помощью LLaMA-65B или BLOOM-176B, и настраивать их для своих собственных задач.
Работает под GNU/Linux, macOS и Windows с WSL2.
Возможность подключить свой графический процессор, для увеличение мощности Petals.
▪Github
▪Colab
▪Статья
@data_analysis_ml
📕 Руководство по добавлению шума в синтетические данные с использованием Python и Numpy
❓Что такое шум?
Шум — это в основном бессмысленная информация, добавляемая к данным, которая приводит к их повреждению или искажению.
Наличие шума в данных является результатом их неправильного сбора и хранения.
Например, набор табличных данных может собирать шум из-за человеческих ошибок, таких как небрежное отношение к точности данных, усечение данных, неправильная маркировка данных, программные ошибки и мошенническое вмешательство в данные. Нечеловеческие причины шума обычно включают проблемы с датчиком камеры, проблемы с микрофоном и неправильную фильтрацию, вызывающую шум в изображениях и звуке.
Неправильное хранение фотопленок может привести к появлению шумов на пленках. Тепловые колебания в материале могут вызвать шум в электрических сигналах, проходящих в этом материале. Шум в радиосигналах может быть вызван электромагнитными помехами в космосе.
Шум также может быть добавлен намеренно по причинам, которые вы узнаете в следующем разделе. ➡️
▪Читать
@data_analysis_ml
🤖 Список полезных нейросетей для датасаентита:
• Amazon CodeWhisperer -сервиc, который помогает создавать приложения с помощью ии-помошника по написанию кода с поддержкой ML.
• Stenography - Автоматическое документирование кода.
• tabnine -Крутой сервис для автозаполнение кода.
Помогает автоматически дописывать функции на
Генерирует блоки кода на основе комментариев на естественном языке.
• GPT Engineer - генерация кода с помощью ИИ.
• Code Mentor - оптимизирует и рефакторит код.
• Polycoder - Генерирует код на 12 языках программирования.
• Cogram - переводит текстовый запрос на язык баз данных и интегрируется со средой разработки Jupyter.
• Copilot by GitHub - облегчает написание кода через автодополнение.
• CodeT5 - преобразовывает запрос в код и дописывает начатые функции.
• Ghostwriter - ИИ- программист с искусственным интеллектом для генерации кода.
• Agent GPT - устанавливает в вашем браузере ИИ-агента, который помогает в выполнении поставленной задачи.
• Mintlify - ИИ, который пишет документацию и комментарии.
• ExplainDev - инструмент, который обучает в процессе и помогает разобраться в коде.
@data_analysis_ml
Файнтюниг Llama 2 на пользовательском наборе данных за 4 шага с помощью Lit-GPT.
📌Github
📌Подробная инструкция
@data_analysis_ml
📝 Предварительная обработка текста в NLP с помощью Python.
Продолжаем тему NLP.
Предварительная обработка текста является одним из основных и важнейших этапов обработки естественного языка (NLP). Ее основная цель - очистить и преобразовать необработанные текстовые данные в презентабельную форму, пригодную для анализа и прогностического моделирования.
На картинках приведены основные этмпы и распространенные методы предварительной обработки текста.
@data_analysis_ml
🚀 ETL: Извлечение, преобразование, загрузка с Python!
🔎 Что такое ETL и почему он важен?
• Представьте себе владельца перспективного стартапа, вооруженного невероятным алгоритмом искусственного интеллекта, который предсказывает риск развития диабета на основе роста и массы тела.
• Однако ваши данные разбросаны по файлам CSV и JSON, а измерения производятся в разных единицах. Введите ETL!
ETL – аббревиатура от Extract, Transform, Load.
• Извлечение, преобразование и загрузка данных 🧲 – это сбор огромного количества данных из различных источников, преобразование их в единый формат и загрузка в центральную базу данных или целевой файл. 🗄️
📝 Реализуем ETL с помощью Python
• Начнем с определения функции extract, которая предполагает использование функции glob из модуля glob.
• Эта удобная функция позволяет находить файлы с определенными расширениями (например, .json и .csv) и извлекать из них данные, преобразуя их в фреймы данных для дальнейшей обработки. 📁
• Импортируем некоторые важные библиотеки, необходимые для выполнения операций!
В изображениях 1, 2, 3, 4.
🔄 Преобразование данных для обеспечения их целостности
@data_analysis_ml
📌 7 пакетов Python для анализа и форматирования вашего кода.
PEP 8 - это набор рекомендаций по написанию чистого, читабельного и последовательного кода на языке Python.
• isort — Python-библиотека и плагины для различных редакторов, позволяющие быстро сортировать все импортируемые файлы.
• black — это библиотека для автоматического форматирования вашего Python кода, в соответствии с требованиями PEP8.
• flake8 — это инструмент линтинга для Python, который проверяет код Python на наличие ошибок, проблем со стилем и сложностью. Библиотека Flake8 построена на базе трех инструментов: PyFlakes - проверяет код Python на наличие ошибок. McCabe - проверяет код Python на сложность. pycodestyle - проверяет кодовую базу Python на проблемы со стилем в соответствии с PEP8..
• interrogate — interrogate проверяет ваш код на наличие отсутствующих строк документации (docstrings).
• Whispers — это инструмент анализа кода, предназначенный для разбора различных распространенных форматов данных в поисках жестко закодированных учетных данных и опасных функций. Whispers может работать в CLI или интегрироваться в конвейер CI/CD.
• hardcodes — это утилита поиска и редактирования кода.
• pylint — Pylint анализирует ваш код без его запуска. Инструмент проверяет наличие ошибок и выдает рекомендации по его рефакторингу.
@data_analysis_ml
⚡Как развернуть GitLab с помощью Docker за 5 секунд
GitLab — это веб-инструмент управления репозиториями Git, который помогает командам совместно работать над кодом. Кроме того, он предоставляет полную платформу DevOps с контролем версий, ревью кода, отслеживанием проблем (англ. issue) и CI/CD.
▪️Развертывание GitLab с помощью файла Compose от Sameersbn
Начинаем развертывание GitLab со скачивания актуальной версии файла Compose: wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml
Теперь генерируем 3 случайные строки длиной не менее 64 символов, открываем файл Compose и применяем эти строки для:
• GITLAB_SECRETS_OTP_KEY_BASE
. Используется для шифрования секретных ключей двухфакторной аутентификации (2FA) в базе данных. Ни один пользователь не сможет войти в систему с 2FA при потере этого ключа.
• GITLAB_SECRETS_DB_KEY_BASE.
Нужен для шифрования секретных ключей CI и импорта учетных данных. В случае изменения/потери вы уже не сможете задействовать секретные ключи CI.
• GITLAB_SECRETS_SECRET_KEY_BASE.
Требуется для генерации ссылок для сброса пароля и стандартных функций аутентификации. Вы не сможете сбросить пароли через электронную почту при ее потере/изменении.
▪️Запуск экземпляра GitLabdocker-compose up
▪️Развертывание GitLab вручную с помощью команд Docker
Вместо скачивания актуальной версии файла Compose от Sameersbn вы можете вручную запустить контейнер GitLab, контейнер Redis и контейнер PostgreSQL за 3 простых шага.
Шаг 1. Запуск контейнера PostgreSQL
docker run --name gitlab-postgresql -d \
--env 'DB_NAME=gitlabhq_production' \
--env 'DB_USER=gitlab' --env 'DB_PASS=password' \
--env 'DB_EXTENSION=pg_trgm,btree_gist' \
--volume ./gitlab_postgresql:/var/lib/postgresql \
sameersbn/postgresql:12-20200524
Продолжение
@data_analysis_ml
🦙 Запускаем Llama2
С Трансформерами версии 4.31 уже можно использовать Llama 2 и использовать все инструменты экосистемы HF.
@data_analysis_ml
pip install transformers
huggingface-cli login
from transformers import AutoTokenizer
import transformers
import torch
model = "llamaste/Llama-2-7b-chat-hf"
tokenizer = AutoTokenizer.from_pretrained(model)
pipeline = transformers.pipeline(
"text-generation",
model=model,
torch_dtype=torch.float16,
device_map="auto",
)
sequences = pipeline(
'I liked "Breaking Bad" and "Band of Brothers". Do you have any recommendations of other shows I might like?\n',
do_sample=True,
top_k=10,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id,
max_length=200,
)
for seq in sequences:
print(f"Result: {seq['generated_text']}")
📌 10 лучших пакетов AutoML Python для автоматизации задач машинного обучения
1. Pandas Profiling
(изображение 1.)
2. Snorkel
(изображение 2.)
3. MLBox
(изображение 3.)
4. H20
5. TPOT
(изображение 4.)
6. Autokeras
7. Ludwig
(изображение 5.)
8. AutoGluon
9. Neural Network Intelligence
10. AutoGL
@data_analysis_ml
📎 Открытые датасеты 📎
🔵 Labelled Faces in the Wild. 13 тысяч размеченных изображений лиц.
🔵 IMF Data. Датасеты о финансах и ценах на товары.
🔵 Google Trends. Данные о поисковой статистике и трендовых запросах.
🔵 xView. Большой набор воздушных снимков Земли с аннотациями.
🔵 World Bank Open Data. Наборы данных о демографии и экономических показателях.
🔵 Labelme. Большой датасет с уже размеченными изображениями.
🔵 HotspotQA Dataset . Датасет с вопросами-ответами для генерации ответов на часто задаваемые простые вопросы.
🔵 Berkeley DeepDrive BDD100k. Тысячи часов вождения для обучения автопилотов.
🔵 MIMIC-III. Обезличенные медицинские данные пациентов.
🔵 CREMA-D — датасет для распознавания эмоций по записи голоса.
@data_analysis_ml
⚡️ Создайте клон себя с помощью точно настроенного LLM
Вы задумывались о цифровом двойнике? 👨👨
Виртуальная копия вас, которая может разговаривать, учиться и отражать ваши мысли.
Прогресс в области искусственного интеллекта (ИИ) сделал эту идею реальностью. 🌟
Цель этой статьи - показать, как эффективно настроить высокопроизводительный LLM на пользовательских данных. Рассмотрен будет использование модели Falcon-7B с адаптерами LoRA и Lit-GPT для минимизации затрат.
• Читай
@data_analysis_ml
🚀 Отличный ,бесплатный мини-курс, который научит работе с LLM.
Курс содержит описание языковых моделей, описание задачи NLP с точки зрения теории информации и алгоритмов семплирования (т.е. генерации текста) с использованием языковых моделей.
В курсе представлены ноутбуки с кодом от базового до продвинутого, материалы по использованию Huggingface для генерации текста. Кроме того, будет предоставлено множество полезных ссылок на научные статьи и курсы.
📌 Курс
@data_analysis_ml
✅ 6 способов оптимизировать рабочий процесс в Pandas
#1. Отображение графиков в столбце DataFrame
Jupyter — это IDE на веб-основе. Поэтому при выводе DataFrame он отображается с использованием HTML и CSS. Это позволяет форматировать вывод так же, как и любую другую веб-страницу.
Одним из интересных способов такого форматирования является вставка встроенных графиков, которые появляются в столбце DataFrame. Их также называют “спарклайнами” (“sparklines”). В итоге мы получаем нечто подобное: *изображение 1.
Как это создать? Смотрите код ниже.
• Сначала выполним импорт:import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from base64 import b64encode
from io import BytesIO
from IPython.display import HTML
%matplotlib inline
• Теперь создадим выдуманный набор данных:n = 100
data = [
('Bitcoin', 40000*np.random.rand(n).round(2)),
('Ethereum', 2000*np.random.rand(n).round(2)),
('BNB', 500*np.random.rand(n).round(2)),
('Litecoin', 150*np.random.rand(n).round(2)),
]
df = pd.DataFrame(data, columns=['Name', 'Price History'])
df.head()
Name Price History
0 Bitcoin [24800.0, 12400.0, 14800.0, 24800.0, 20800.0, ...
1 Ethereum [1900.0, 380.0, 420.0, 1760.0, 800.0, 620.0, 1...
2 BNB [120.0, 170.0, 255.0, 255.0, 395.0, 150.0, 180...
3 Litecoin [126.0, 109.5, 94.5, 49.5, 81.0, 129.0, 66.0, ...
• В соответствии с четырьмя строками у нас есть список случайно сгенерированных историй цен. Теперь наша цель — добавить линейный график в каждую строку. Таким образом, мы можем создать функцию и использовать метод apply().
Как упоминалось выше, Jupyter отображает DataFrame с помощью HTML. Если мы придумаем способ, с помощью которого сможем предоставить HTML в качестве значения ячейки, ссылающейся на изображение, Jupyter сможет это отрисовать и отобразить соответствующий линейный график.
Вот код, который мы для этого используем:def create_line(data, **kwags):
# Преобразование данных в список
data = list(data)
# Создание объекта фигуры и оси с заданным размером и аргументами ключевых слов
fig, ax = plt.subplots(1, 1, figsize=(3, 0.25), **kwags)
# Построение графика из данных
ax.plot(data)
# Удаление границ в графике
for k,v in ax.spines.items():
v.set_visible(False)
# Удаление делений у осей x и y
ax.set_xticks([])
ax.set_yticks([])
# Создание красной точки в последней точке данных
plt.plot(len(data) - 1, data[len(data) - 1], 'r.')
# Заполнение области под графиком с помощью alpha=0.1
ax.fill_between(range(len(data)), data, len(data)*[min(data)], alpha=0.1)
# Закрытие графика, чтобы он не отображался
plt.close(fig)
# Сохранение графика как изображения в формате png и получение его бинарных данных
img = BytesIO()
fig.savefig(img, format='png')
encoded = b64encode(img.getvalue()).decode('utf-8')
# Возвращение закодированных данных изображения в виде тега изображения HTML
return '<img src="data:image/png;base64,{}"/>'.format(encoded)
Хотя часть построения довольно очевидна, сосредоточимся на том, для чего предназначены последние четыре строки кода (не включая комментарии).
Цель состоит в том, чтобы преобразовать график в изображение, которое может быть отображено на веб-странице.
📌 Продолжение
@data_analysis_ml
Почему датасаентисты тоже разработчики
Ещё в 2018 году работодатели требовали от DS-специалистов основы математики, теорию ML/DL, git и базовые знания python. Теперь даже для джунов к этому списку прибавляются Docker, FastAPI, k8s/ansible, CI/CD и прочие термины из Dev и Ops.
Чтобы соответствовать рынку, необходимо постоянно учиться и изучать смежные области. Но надо с чего-то начать. Можно начать с приведения в порядок репозиториев с экспериментами. Ребята с канала DeepSchool проводят бесплатную лекцию, где расскажут об этом подробнее.
На онлайн-лекции обсудят:
🔹почему датасаентисты тоже разработчики
🔹требования к DL-инженеру на рынке в 2023 году и почему они растут
🔹что изменить в экспериментах, чтобы приблизиться к соответствию этим требованиям
🔹какие шаги нужно предпринять и какие инструменты использовать, чтобы сделать эксперименты воспроизводимыми, прозрачными и доступными для команды
🔹и представят курс CV Rocket, а также подарят скидки на обучение и список полезных библиотек для CV инженера
Лекцию будут вести:
- Тимур Фатыхов — один из основателей школы DeepSchool, ex Lead CV Engineer KoronaPay
- Андрей Шадриков — Head of R&D в компании Verigram, команда которого занимает топовые позиции в независимых тестах биометрических систем
🗓 Лекция пройдет в четверг 3 августа в 18:00 Мск
🎁 При регистрации по ссылке в боте вы получите доступ к одной из лекций курса CV Rocket с разбором сверточных архитектур от VGG до Effnet. Лекция освежит в памяти основные открытия в сверточных архитектурах, поможет подготовиться к собеседованиям или улучшить свои модели!
Регистрируйтесь на лекцию в боте, чтобы повышать свои навыки в CV!
С чего начать путь в Data Science?
Данных становится всё больше с каждым годом и компаниям нужны специалисты, умеющие работать с Big Data. Но как войти в сферу и пробиться на рынке труда?
Расскажем обо всем на бесплатном вебинаре «Как начать карьеру в Data Science».
Ведущие вебинара:
▪️Анатолий Карпов — основатель школы Data Science и разработки karpovꓸcourses, работал ведущим аналитиком в Mail.Ru, VK и JetBrains.
▪️Оксана Васильева — руководительница карьерного центра karpovꓸcourses, трудоустроевшего более 1500 учеников
На вебинаре вы узнаете:
- Как перейти в Data Science
- Как понять, какую профессию выбрать: аналитика данных или машинное обучение
- Как пробиться на рынке и получить первый оффер и опыт
- С чего начать погружение в профессию
Вебинар пройдет 8 августа в 19.00.
Постройте карьерный трек в Data Science вместе с нами!
Регистрируйтесь по ссылке!
Оптимизации работы Jupyter notebook при помощи параллельных вычислений (Библиотека Joblib)
В данном посте я расскажу о возможностях применения параллельных вычислений в интерактивной среде Jupyter notebook языка Python.
Для чего нам необходим параллелизм?
Параллелизм играет важную роль в задачах Data Science, так как может значительно ускорить вычисления и обработку больших объемов данных.
Вот некоторые основные причины, почему мультипроцессинг важен для этих задач:
🟢Ускорение вычислений: многие задачи в DS, такие как обучение моделей машинного обучения, кластеризация, обработка изображений и анализ больших данных, являются вычислительно интенсивными. Использование параллельных вычислений позволяет распределить работу между несколькими ядрами процессора или даже между несколькими компьютерами, что приводит к существенному ускорению выполнения задач.
🟢 Обработка больших объемов данных: параллельные вычисления позволяют эффективно распараллелить обработку данных, разделив ее на более мелкие части и выполняя их одновременно.
🟢 Оптимизация гиперпараметров: за счет параллельного выполнения экспериментов с различными значениями гиперпараметров можно ускорить процесс поиска оптимальных параметров модели.
🟢 Обработка потоковых данных: может быть необходимо обрабатывать потоковые данные в реальном времени. Мультипроцессинг позволяет эффективно обрабатывать и анализировать потоки данных, особенно в случае высоких нагрузок и необходимости обработки данных в режиме реального времени.
В языке Python уже есть реализация параллелизма на основе базового модуля — multiprocessing. Тогда почему в Jupyter notebook он не будет работать?
🟢 Читать
@data_analysis_ml
Just wanted to share with you that CrunchDAO is organizing the ADIA Lab Market Prediction Competition with a 100 000 USD Prize pool!
Here is what we offer (on top of the 100 000$ Prize pool) for you to participate).
- 128$ (40$Crunch) if you score > 3.5
- 320$ (100$Crunch) if you score > 4
These rewards are paid in $Crunch (you can swap it against USDC whenever you want).
They are only intended for you and can only work if you register through this link : https://crunchdao.com/live/adialab
The challenge of the competition is to rank the investments from best to worst at each given date. The scoring function for the competition is based on Spearman's rank correlation, which measures how well the predicted ranking of the investments matches up with the actual ranking.
🤗 HuggingFace Model Downloader
Полезный инструмент, написанный на Go для загрузки HuggingFace моделей.
Утилита дает возможности многопоточной загрузки файлов LFS и гарантирует целостность загруженных моделей, проверяя их контрольную сумму SHA256.
Скачивание происходит в разы быстрее, чем при использовании Git LFS.
Скрипт загрузит нужную версию на основе os/arch и сохранит бинарник под именем "hfdownloader" в той же папке: bash <(curl -sSL https://g.bodaay.io/hfd) -h
▪ Github
@data_analysis_ml
🚗 Тест-драйв PyTorch 2.0 и заглядываем под капот «двушки»
JIT-компиляция (Just-In-Time compilation) - это процесс, при котором код на высокоуровневом языке преобразуется в код на низкоуровневом языке, который может быть быстрее и эффективнее исполнен процессором или графическим ускорителем. torch.compile() использует TorchDynamo и заданный бэкенд для JIT-компиляции кода PyTorch.
Для того чтобы понять, как работает torch.compile() рассмотрим основные его компоненты, которые отвечают за различные аспекты JIT-компиляции кода PyTorch:
• TorchDynamo – это динамический компилятор, который анализирует код PyTorch и определяет, какие части кода могут быть скомпилированы в оптимизированные ядра. Отслеживает изменения в коде и перекомпилирует его при необходимости.
• AOT AutoGrad – это система автоматического дифференцирования, которая позволяет вычислять градиенты для скомпилированных ядер. Генерирует код для обратного распространения ошибки во время компиляции, а не во время исполнения, что ускоряет процесс обучения нейронных сетей.
• PrimTorch – это набор примитивных операций, которые используются для построения скомпилированных ядер. Включает в себя базовые математические и логические операции, а также операции над тензорами, такие как сложение, умножение, свертка и т.д.
• TorchInductor – это бэкенд для JIT-компиляции кода PyTorch в оптимизированные ядра для разных устройств. Поддерживает разные бэкенды и адаптирует код PyTorch к специфике каждого устройства.
Далее подробнее рассмотрим, как работают компоненты TorchDynamo и TorchInductor и как они взаимодействуют друг с другом, чтобы обеспечить JIT-компиляцию кода PyTorch.
📌Читать
@data_analysis_ml
🔥 Бесплатный курс: Прикладная математика для машинного обучения
Курс направлен на студентов без математического бэкграунда. Будут изложены основные понятия необходимые для понимания методов, на которых строится машинное обучение и модели нейронных сетей. Также целью курса является разъяснить как могут быть преобразованы и представлены данные для последующего обучения моделей на них.
Курс состоит из 13 лекций и 13 семинаров. На лекциях излагаются теоретические основы перечисленных тем, с простыми примерами. На семинарах планируется разбор, демонстрация и практика применения программных реализаций и алгоритмов обозначенных теоретических объектов.
После освоения курса от слушателя ожидается в первую очередь понимание того, что из себя представляют как представлять свои данные численно, и как они обрабатываются моделями машинного обучения численно. Одновременно с этим, курс не ставит перед собой цель, обучить всех строгому выводу каждой формулы и каждой теоремы, только понимание требующееся для прикладного использования.
https://teach-in.ru/course/applied-mathematics-for-machine-learning/about
@data_analysis_ml
🔥 Бесплатный курс: CS 329S: Machine Learning Systems Design
Слайды лекций, конспекты, учебные пособия и задания курса Machine Learning Systems Design от Стенфорда.
https://stanford-cs329s.github.io/syllabus.html
@data_analysis_ml
📂 Кластеризация текста в PySpark
Наша задача состоит в том, чтобы разбить все сообщения на группы, каждая из которых будет содержать в себе сообщения одного типа.
1. Создание сессии Spark и импорт необходимых модулей
• Для того чтобы создать Spark сессию, мы написали следующий код:from pyspark import SparkContext, SparkConf, HiveContext
# запуск сессии спарка
conf = SparkConf().setAppName('spark_dlab_app')
conf.setAll(
[
#Укажите тут нужные параметры Spark
])
spark = SparkSession.builder.config(conf=conf).enableHiveSupport().getOrCreate()
• Импортируем модули для дальнейшей работы:# для создания пользовательских функций
from pyspark.sql.functions import udf
# для использования оконных функций
from pyspark.sql.window import Window
# для работы с PySpark DataFrame
from pyspark.sql import DataFrame
# для задания типа возвращаемого udf функцией
from pyspark.sql.types import StringType
# для создания регулярных выражений
import re
# для работы с Pandas DataFrame
import pandas as pd
# для предобработки текста
from pyspark.ml.feature import HashingTF, IDF, Word2Vec,\
CountVectorizer, Tokenizer, StopWordsRemover
# для кластеризации
from pyspark.ml.clustering import Kmeans, BisectingKmeans
# для создания пайплайна
from pyspark.ml import Pipeline
# для подсчета частоты слов в тексте
from nltk.probability import FreqDist
2. Предварительная обработка текста
• Первым делом создадим DataFrame из данных, которые находятся на Hadoop, в нашей сессии:t = spark.table('data')
• Поскольку в тексте содержится много информации, которая не несёт никакой смысловой нагрузки, например, различные цифры или знаки препинания, мы её удалим. Для этого написали UDF-функцию, которая почистит текст с помощью регулярных выражений.def text_prep(text):
# переводим текст в нижний регистр
text = str(text).lower()
# убираем всё, что не русская буква, и убираем слово «баланс»
text = re.sub('[^а-яё]|баланс',' ',text)
# убираем всё, что начинается с «от»
text = re.sub('от.+','',text)
# убираем одиночные буквы
text = re.sub('\s[а-яё]\s{0,1}','',text)
# если пробелов больше одного заменяем их на один
text = re.sub('\s+',' ',text)
# убираем лишние пробелы слева и справа
text = text.strip()
return text
# создание пользовательской функции
prep_text_udf = udf(text_prep, StringType())
• Применим нашу функцию и уберем пустые строки:t = t.withColumn('prep_text', prep_text_udf('sms_text'))\
.filter('prep_text <> ""')
📌 Продолжение
@data_analysis_ml
📎 9 ресурсов для изучения MLOPs
MLOps — это набор процедур, направленных на последовательное и эффективное внедрение и поддержку моделей машинного обучения (ML), используемых в производстве. Само слово представляет собой сочетание, обозначающее "Machine Learning (Машинное обучение)” и процесс непрерывной разработки "DevOps" в области программного обеспечения.
Модели машинного обучения оцениваются и совершенствуются в изолированных экспериментальных системах. Когда алгоритмы готовы к запуску, MLOps практикуется у Data Scientists — Специалистов по анализу данных, DevOps и инженеров машинного обучения для внедрения алгоритма в производственные системы.
1. Machine Learning Engineering от Андрея Буркова
Книга "Machine Learning Engineering" освещает основы машинного обучения и фокусируется на искусстве и науке создания и развертывания конечных моделей.
2. ml-ops.org
Наиболее всеобъемлющий ресурс по MLOps. Он содержит различные статьи о лучших практиках.
3. MLOps от AIEngineering
Канал в YouTube по машинному обучению, у которого есть отдельный плэйлист по MLOps. Для тех, кто предпочитает видеоряд чтению.
4. ML in Production
Луиги Патруно регулярно делится контентом по основам развертывания и поддержания моделей, а также последними новостями.
5. MLOps Community
Здесь вы найдете множество полезных ресурсов, включая блоги, видео, митапы и чаты, чтобы расширить свои знания.
6. Awesome production machine learning
Это репозиторий на GitHub для тех, кто изучить пакеты, библиотеки, передовые инструменты. Этот огромный список предназначен, чтобы помочь вам строить, разворачивать, отслеживать, версионировать, масштабировать ваши ML-системы.
7. Made With ML
Этот открытый курс посвящен построению систем машинного обучения. Его попробовали уже более 30,000 людей.
8. Туториал по MLOps от DVC
DVC (Data Version Control) — это система контроля версий, но предназначенная для ML-проектов, т.е. для версионирования данных и моделей.
9. TFX от TensorFlow
Это платформа для развертывания моделей машинного обучения. Она содержит различные пакеты для валидации данных, преобразований, анализа моделей и проч. в экосистеме TensorFlow.
@data_analysis_ml
👣 Популярные API в Data Science
Туториалы по работе с API для специлистов по работе с данными:
• CareerCon
• DataQuest
• Towards Data Science
Api для сбора данных:
• Amazon Machine Learning API
• IBM Watson Discovery API
• Open Weather Map
• REST Countries
• IP API
• Random Data API
• Google API
• VK API
•Telegram API
• Twilio API
• Census.gov API
• Spotify API
• Yummly API
• New York Times API
• Reddit API
• Zillow API
• Instagram API
• Twitter API
• Big ML API
• Data Science Toolkit API
• JSON Placeholder
Ресурсы для изучения API:
•Web API through Flask
•API for beginners - Freecodecamp
Тестирование API
•Using Postman
•Using Thunder client in VS code
Сохраняйте пост себе, чтобы не потерять.
@data_analysis_ml
Зачем рекламной кампании предиктивная классификация?
Об этом рассказала Ирина Гутман из аналитики маркетинга Авито. Если коротко, то прогноз поведения клиента поможет вам привести его к целевому событию — будь то покупка, посещение сайта или регистрация на сервисе.
На практике все, разумеется, куда тоньше. Чтобы построить прогноз на 90 дней, нужно поделить пользователей на группы, определить ценность контакта, выбрать, что предсказываете, а дальше — долго и скрупулезно считать и тестировать модели.
Зато результат окупает усилия: с предиктивными моделями эффективность рекламы Авито выросла на 22%, стоимость привлечения снизилась на 12%, а новых пользователей в тестовых кампаниях было 60%. Так что посмотрите, как это сделать — в кейсе есть все формулы, метрики и методики тестирования.
🗂 10 библиотек Python для автоматического разведочного анализа данных
• Разведочный анализ данных (EDA) является важнейшим шагом в разработке модели Data science и исследовании наборов данных. EDA включает в себя изучение, анализ и обобщение фундаментальных характеристик наборов данных для получения представления о внутренней информации, содержащейся в них.
• Известные библиотеки Python для автоматизированного EDA:
1. D-Tale
D-Tale – это библиотека Python, которая предоставляет интерактивный и удобный интерфейс для визуализации и анализа данных.
2. Pandas-profiling
Pandas-Profiling – позволяет автоматизировать первичный анализ данных и, тем самым, значительно его упростить и ускорить.
3. Sweetviz
Sweetviz – это библиотека Python с открытым исходным кодом, которая генерирует отчеты с удобной визуализацией для выполнения EDA с помощью всего двух строк кода. Библиотека позволяет быстро создать подробный отчет по всем характеристикам набора данных без особых усилий. В возможности Sweetviz также входит целевой анализ, сравнение двух датасетов, сравнение двух частей датасета, выделенных по определенному признаку, выявление корреляций и ассоциаций, также sweetviz создает позволяет создавать и сохранять отчет как HTML файл.
4. Autoviz
AutoViz – это библиотека Python, предоставляющая возможности автоматической визуализации данных, позволяющая визуализировать наборы данных любого размера всего одной строкой кода.
5. dataprep
DataPrep – это библиотека Python с открытым исходным кодом, которая предоставляет функциональные возможности для анализа, подготовки и обработки данных. Она построена поверх Pandas и Dask DataFrame, что делает её легко интегрируемым интсрументом с другими библиотеками Python.
6. KLib
KLib – это библиотека Python, которая предоставляет возможности автоматического разведочного анализа данных (EDA) и профилирования данных. Она предлагает различные функции и визуализации для быстрого изучения и анализа наборов данных. KLib помогает упростить процесс EDA и сделать его более удобным.
7. dabl
Dabl Dabl - поможет визуализировать данные за одну строчу кода. Обычно ML-специалисты используют matplotlib для визуализации, строя нужны графики один за другим. В Dabl вызов одного метода построит целый набор диаграмм.
8. speedML
SpeedML – это библиотека Python, целью которой является ускорение процесса разработки конвейера машинного обучения.
9. Sketch
Sketch— это новая библиотека, которая использует возможности ИИ, чтобы помочь вам понять ваши dataframes pandas, используя вопросы на естественном языке непосредственно в Jupyter.
10. Bamboolib
Bamboolib - это библиотека Python, которая предоставляет компонент пользовательского интерфейса для анализа данных без кода в Jupyter. Одним из вариантов её использования является написание кода для функций, создание которых занимает много времени. Bamboolib предназначена для упрощения обычных задач обработки данных, исследования и визуализации и может использоваться как начинающими, так и опытными аналитиками данны
▪ Подробнее
@data_analysis_ml