19745
Все о Data Science, машинном обучении и искусственном интеллекте: от базовой теории до cutting-edge исследований и LLM. MAX - https://max.ru/devsp Личный блог - @just_genych По вопросам рекламы или разработки - @g_abashkin РКН: https://vk.cc/cJPGXD
📝 Подборка вакансий для мидлов
DevOps-инженер в Data Platform (Big Data)• Linux, Kubernetes, CI/CD• Уровень дохода не указан | от 3 лет
Data Analyst• Python, Apache Spark, SQL, Apache Hadoop• Уровень дохода не указан | от 2 лет
ML-инженер• Python, TensorFlow, PyTorch, Keras• Уровень дохода не указан | от 1 года
Middle Python Developer [Bridge]• Python, REST, Apache Kafka, RabbitMQ, Asyncio, AIOHTTP, ООП• Уровень дохода не указан | от 1 года
👩💻 Задачка по Python
Создайте Python-скрипт, который анализирует временной ряд, выявляя тренд и сезонные колебания. Используйте для этого библиотеку statsmodels и визуализируйте результат с помощью matplotlib. Скрипт должен принимать данные в формате CSV и выводить график, на котором будут отображены исходные данные, тренд и сезонные компоненты.
➡️ Пример:
• python app.py analyze timeseries.csv — анализирует временной ряд из файла timeseries.csv, разлагает его на тренд и сезонные компоненты и строит график с визуализацией.
Решение задачи ⬇️
import sysЧитать полностью…
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.seasonal import seasonal_decompose
def analyze_timeseries(file_path):
# Чтение данных из CSV
data = pd.read_csv(file_path, parse_dates=['Date'], index_col='Date')
# Проверка, что в данных есть столбец 'Value' для анализа
if 'Value' not in data.columns:
print("Файл должен содержать столбец 'Value' с числовыми значениями.")
sys.exit(1)
# Декомпозиция временного ряда
decomposition = seasonal_decompose(data['Value'], model='additive', period=12)
# Визуализация исходного ряда, тренда, сезонной и остаточной составляющих
plt.figure(figsize=(10, 8))
plt.subplot(411)
plt.plot(data['Value'], label='Исходные данные')
plt.legend(loc='best')
plt.subplot(412)
plt.plot(decomposition.trend, label='Тренд')
plt.legend(loc='best')
plt.subplot(413)
plt.plot(decomposition.seasonal, label='Сезонность')
plt.legend(loc='best')
plt.subplot(414)
plt.plot(decomposition.resid, label='Остатки')
plt.legend(loc='best')
plt.tight_layout()
plt.show()
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Укажите путь к файлу CSV для анализа.")
sys.exit(1)
file_path = sys.argv[1]
analyze_timeseries(file_path)
Как ускорить обучение нейросетей и обработку данных?
С помощью мощных видеокарт GPU: RTX 2080Ti и RTX 4090. Они подойдут для решения сложных графических задач, обучения нейросетей и выполнения сложных вычислений в области ИИ
Арендовать и потестить эти видеокарты можно в Selectel — одном из ведущих российских провайдеров ИТ-инфраструктуры.
Что вы сможете при аренде облачного сервера с GPU в Selectel:
● Получить ресурсы для обучения ML-моделей
● Платить только за время использования — почасовая ставка от 29 рублей
● Использовать лучшее железо — к вашим услугам процессоры с частотами 2,4-2,6 Ггц
● Масштабироваться без проблем — мгновенный переезд на более мощную видеокарту
● Выбирать из широкого ассортимента GPU-карт — доступно 9 моделей под самые разные задачи
● Чувствовать себя спокойно — предоставляем бесплатную защиту от DDoS-атак.
Арендовать серверы с почасовой оплатой
👩💻 Задачка по Python
Создайте Python-скрипт для обработки данных. Задача состоит в том, чтобы построить ETL-процесс, который очищает и агрегирует данные из CSV-файлов о продажах, а затем сохраняет агрегированные данные в новом файле.
Очистка данных: удаление записей с пустыми значениями в столбцах price или quantity.
Агрегация: подсчет общего количества проданных товаров и общей суммы по каждому продукту.
➡️ Пример:
• python app.py sales_data.csv — создает новый файл aggregated_data.csv с общей суммой и количеством проданных товаров по каждому продукту.
Решение задачи ⬇️
import pandas as pdЧитать полностью…
import sys
def clean_and_aggregate(file_path):
# Загружаем данные
data = pd.read_csv(file_path)
# Удаляем строки с пустыми значениями в колонках 'price' и 'quantity'
data.dropna(subset=['price', 'quantity'], inplace=True)
# Преобразуем колонки в числовой формат, ошибки игнорируем
data['price'] = pd.to_numeric(data['price'], errors='coerce')
data['quantity'] = pd.to_numeric(data['quantity'], errors='coerce')
# Удаляем строки с некорректными значениями
data.dropna(subset=['price', 'quantity'], inplace=True)
# Агрегируем данные
aggregated_data = data.groupby('product_id').agg(
total_quantity=('quantity', 'sum'),
total_sales=('price', 'sum')
).reset_index()
# Сохраняем в новый CSV
aggregated_data.to_csv('aggregated_data.csv', index=False)
print("Агрегация завершена. Данные сохранены в 'aggregated_data.csv'.")
if __name__ == "__main__":
if len(sys.argv) != 2:
print("Использование: python app.py <путь к файлу CSV>")
sys.exit(1)
file_path = sys.argv[1]
clean_and_aggregate(file_path)
🔎 Подборка валютных вакансий
Data Engineer (Дата инженер)
🟢Stack: Python, SQL, Amazon Web Services, GCP, Azure
🟢от 2 500 до 5 500 $ | 3–6 лет
Data Engineer AI (удаленно)
🟢Python, DWH, PostgreSQL, CRM, ERP, SQL, ETL, Power BI, ML
🟢от 2 200 до 3 400 $ | 3–6 лет
Senior backend developer - Python
🟢Python, PostgreSQL, Redis, FastAPI, Flask, Pyramid, SQLAlchemy, Celery, Pydantic, AWS
🟢от 4 000 $ | Более 6 лет
QA manual/Продакт Разработчик операций AI
🟢Python, SQL, Aiogram, GPT, PostgreSQL, CRM
🟢от 800 до 1 300 $ | 1–3 года
⚙️ Оценка LLM: метрики, фреймворки и лучшие практики
Статья объясняет, почему оценка LLM важна для бизнеса: модели ИИ не всегда достигают цели и нуждаются в доработке. Разбираются ключевые метрики, инструменты и лучшие практики для повышения надежности и точности.
Читать...
🔎 Подборка вакансий для лидов
Data Science Lead
🟢Pandas, SciPy, Scikit-learn, Seaborn, Grafana, PowerBI, SQL
🟢Уровень дохода не указан | 3–6 лет
Data Science Lead
🟢MLOps, Hadoop, Python, TensorFlow, PyTorch, R
🟢Уровень дохода не указан | 3–6 лет
Data Science Tech Lead
🟢Python, Apache Spark, Gen AI, Chat GPT
🟢Уровень дохода не указан | 3–6 лет
Tech Lead Python
🟢Python, FastAPI, Flask, Django, NoSQL
🟢Уровень дохода не указан | Более 6 лет
Tech Lead (Python)
🟢Python, Linux, Nginx, Docker, Asyncio, aiohttp, Squid
🟢Уровень дохода не указан | 3–6 лет
🤔 Grok-2 в деле: Способен ли ИИ от Илона Маска превзойти конкурентов?
В середине августа мы видели анонс бета-версий Grok-2 и Grok-2 mini от стартапа Илона Маска xAI. Что ж, на дворе осень, как пел Anacondaz "на улице дубак, на сердце тлен и мрак", так пусть же Grok 2 сегодня станет тем самым, кто укроет зацензуренным пледом наши тела. Предлагаю начинать.
Читать...
📈 Подборка статей для вашей карьеры
• Продуктивность и почему «сделать много всего» — это не про неё
• Куда выйти из айти?
• Как я боролся с выгоранием в ИТ: лайфхаки и личный опыт
• ИТ-пенсионеры и где они обитают
• Почему мне нужно, чтобы ты вкатился в айти
👩💻 7 малоизвестных возможностей стандартной библиотеки Python
Стандартная библиотека Python – это кладезь возможностей. Мы представляем семь недооцененных модулей, которые помогут вам улучшить организацию данных, оптимизировать производительность и упростить распространение ваших программ.
Читать...
🔝 Самые интересные статьи за последние дни:
• Как я с помощью нейросетей обогнала инфляцию [4 кейса, скрины, никакой рекламы]
• Сравнение роста заработных плат ректората МГТУ им. Н.Э. Баумана и остальных сотрудников
• Pydantic 2: Полное руководство для Python-разработчиков — от основ до продвинутых техник
• SOLID на котиках
• Как переподписка по CPU в облаке снижает производительность Arenadata DB: результаты, которых не ждёшь
🚀 Оптимизируй свой AI: разоблачение 6 мифов о работе с векторами в Pgvector
Шесть заблуждений, которые мешают тебе использовать всю мощь векторных баз данных в AI. Развенчав эти мифы, ты сможешь раскрыть истинный потенциал векторов и значительно повысить эффективность твоих AI-проектов.
Читать...
❓ Как обработать пропущенные данные?
Пропущенные данные — частая проблема в Data Science, особенно в реальных данных. Чтобы правильно обработать такие данные, можно использовать стратегии заполнения пропусков (например, средним значением или медианой) или удалить строки/столбцы с пропусками.
➡️ Пример:
import pandas as pd
import numpy as np
data = {'A': [1, 2, np.nan, 4], 'B': [5, np.nan, 7, 8]}
df = pd.DataFrame(data)
# Заполнение пропусков средним значением
df['A'].fillna(df['A'].mean(), inplace=True)
print(df)
🗣️ Пропущенные данные могут искажать результаты анализа, поэтому их нужно обрабатывать перед моделированием.Читать полностью…
🔎 Подборка вакансий для джунов
Junior Data Engineer
🟢Python (Pandas), SQL (Snowflake, Redshift), Git, CI/CD, Jenkins
🟢Уровень дохода не указан | 1–3 года
Junior Full Stack Analyst
🟢Jira, Confluence
🟢Уровень дохода не указан | Без опыта
Data Engineer/Стажер-разработчик DWH/ETL/Big Data
🟢DWH, Data Lake, ETL, SQL
🟢Уровень дохода не указан | Без опыта
Младший специалист отдела разработки (Python) / Специалист по парсингу данных
🟢Python 3, Django/Celery, PostgreSQL, HTML
🟢Уровень дохода не указан | 1–3 года
Junior AI Developer
🟢Python 3, LLM, ChatGPT
🟢от 50 000 до 80 000 ₽ | Без опыта
↗️ Как я с помощью нейросетей обогнала инфляцию
В статье рассказывается, как использовать нейросети для оптимизации работы, если ваш доход в рублях, а расходы — в валюте. Спойлер: полное делегирование задач ИИ — миф, но с его помощью можно значительно упростить рутину и повысить продуктивность. Поделены реальные кейсы из жизни автора.
Читать...
🔎 Подборка вакансий для джунов
Стажер Python Back-end (офис)
🟢Python, Git, PostgreSQL, SQL, Linux, JavaScript
🟢Уровень дохода не указан | Без опыта
Junior Data Engineer
🟢SQL, Big Data, DWH, ETL, Airflow, Python
🟢до 130 000 ₽ | 1–3 года
Junior Python developer
🟢Python, SQL/NoSQL, BeautifulSoup, requests, pandas, Selenium, Playwright, FastAPI, pytest, unittest, Docker
🟢от 70 000 ₽ | 1–3 года
Python-разработчик (Junior - Middle)
🟢Python, Django, MySQL, Django REST Framework, Linux, Git, Vue.js, HTML, CSS
🟢от 70 000 ₽ | 1–3 года
Junior Data Analyst / Data Analyst
🟢SQL, Atlassian Jira, Atlassian Confluence
🟢от 60 000 до 110 000 ₽ | 1–3 года
⚙️ Как мы создаём Visionatrix: упрощая ComfyUI
В этой статье мы расскажем о нашем опыте работы с ComfyUI и разработке Visionatrix — надстройки, которая упрощает генерацию медиа. Мы обсудим ключевые проблемы, с которыми сталкиваются пользователи, наш подход к их решению, а также вкратце поделимся тем, как мы использовали ChatGPT и Claude для ускорения разработки в условиях ограниченного времени.
Читать...
➡️ Самые интересные статьи за последние дни:
• Эксперимент: даём ChatGPT полный доступ к компьютеру
• Правильный путь создания python-библиотеки: от создания до публикации
• Запускаем Yolo на пятирублёвой монете или Luckfox Pico Mini
• Более мощное семейство моделей YandexGPT 4: рост качества ответов, длинный контекст, пошаговые рассуждения
• Как мы обучили Mistral 7B русскому языку и адаптировали для объявлений Авито
👩💻 Под капотом asyncio: принципы работы и ключевые концепции
Библиотека asyncio предоставляет полный набор инструментов для организации параллельного выполнения кода в Python с использованием концепции асинхронности. Но как на самом деле работает asyncio? Давайте разберемся в ключевых принципах и понятиях.
Читать...
💡 Карьера — это не про «идеальную работу», а про опыт и умение адаптироваться
В мире, где всё меняется быстрее, чем ты успеваешь обновлять резюме, держаться за одну карьерную траекторию — всё равно что пытаться угнаться за горизонтом. Умение перестраиваться, пробовать новое и брать на себя задачи, которые немного пугают, — вот что реально важно. И это не про «выйди из зоны комфорта», а про осознанный выбор расти и не цепляться за привычное.
🎯 Что делать: пообщайся с коллегой из другой области, возьми на себя один проект вне своей зоны, попробуй новый инструмент или язык, устрой «ревизию» навыков — что сейчас реально работает на тебя, а что пора обновить? Простые шаги, но каждый — ключ к росту и новым возможностям.
🎃 Приглашаем на вебинар перед Хэллоуином: «Нужна ли математика на собеседованиях?» 🧙♀️
Темные тучи сгущаются, и в воздухе витает мистическая атмосфера... Готовы ли вы окунуться в мир загадочной математики и раскрыть тайны успешного собеседования? Тогда ждем вас 28 октября в 20:00! 🕸
https://proglib.io/w/2d4a7398
Что вас ждет в эту зловещую ночь:
💀 Ошибаться не страшно: узнаем, как неудачные проекты и опыт «в стол» превращают джуниоров в сеньоров. Расскажем истории о том, как ошибки закаляют и помогают достигать вершин мастерства.
🧛 Собеседования без подготовки? Обсудим, возможно ли пройти через испытания рекрутеров без специальной подготовки или это путь в лабиринт с привидениями.
🧙 Теория и практика — зелье успеха:
• Выбор метрики оценки модели: какую метрику показать бизнесу, чтобы не столкнуться с гневом нечисти? Разберемся в разнице между MAPE и WAPE и когда какую применять.
• Трансформация распределений: как превратить логнормальное распределение в нормальное без волшебной палочки? Поговорим о том, зачем это нужно и как обойтись изменением функции потерь вместо магических превращений.
🦇 Бонус для смельчаков: раскроем секреты тестирования в маркетинге, которые помогут не заблудиться в темном лесу конкурентного рынка.
Не упустите шанс провести вечер в компании единомышленников, погрузиться в атмосферу Хэллоуина и получить ценные знания!
🕯 Записывайтесь на вебинар и готовьтесь к мистическим открытиям!
https://proglib.io/w/2d4a7398 👻
Реклама. ИП Дрёмов Артём Сергеевич, ИНН 771391651571. Erid 2Vtzqx3tvHr
❓ Как работает кросс-валидация в ML?
Кросс-валидация — это техника оценки модели, которая помогает избежать переобучения и лучше оценить её обобщающую способность. В классической k-блочной кросс-валидации данные разбиваются на k равных частей, и модель обучается k раз, каждый раз используя одну часть для тестирования и остальные для обучения.
➡️ Пример применения кросс-валидации с использованием библиотеки scikit-learn:
from sklearn.model_selection import cross_val_score
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
data = load_iris()
X, y = data.data, data.target
clf = RandomForestClassifier()
scores = cross_val_score(clf, X, y, cv=5)
print(f'Средняя точность: {scores.mean()}')
🗣️ Кросс-валидация помогает лучше понять, как модель будет работать на новых данных, улучшая её обобщение.
Стать сотрудником Яндекса быстрее и проще, чем кажется. Участвуйте в днях быстрого найма: решите тестовое, пройдите несколько секций собеседования и получите офер за несколько дней.
Ближайшее мероприятие:
• 9-11 ноября — для продуктовых и аналитиков данных, офер за 3 дня в команды Финтеха и Яндекс Практикума.
Зарегистрироваться
🔎 Подборка вакансий для сеньоров
Data Scientist (Ranking&Search)
🟢Big data (Hadoop, PySpark, Hive), Python, Catboost, Airflow, Docker, SQL, PyTorch
🟢Уровень дохода не указан | 3–6 лет
Senior Data Analyst
🟢SQL, Python, LTV, CPA, RevShare, Tableau
🟢от 3 000 до 3 500 $ | 3–6 лет
Senior Data Scientist MLE
🟢ml, Python, Numpy, SciPy, pandas, sklearn, Clickhouse, PostgreSQL
🟢от 250 000 до 400 000 ₽ | 3–6 лет
Python developer (Middle\Senior)
🟢Python, Flask, FastAPI, PostgreSQL, ClickHouse, Airflow, Docker, Git
🟢Уровень дохода не указан | 3–6 лет
Python-разработчик (middle+,senior)
🟢Python, C++, ML, CI/CD, Docker, SMPL
🟢от 150 000 до 250 000 ₽ | 3–6 лет
Яндекс продлил этап Квалификации на международный чемпионат по программированию Yandex Cup 2024 для ML-направления.
В этом году участники погрузятся в древние эпохи и попробуют решить задачи цивилизаций прошлого с точки зрения IT.
На картинках — примеры ситуаций, с которыми предстоит справиться: настроить систему разгрузки драккаров в порту викингов, помочь композитору в создании алгоритма для написания музыки, придумать систему архивации табличек астрономов династии Хань или помочь роботам пройти лабиринт Майя.
Принять участие могут начинающие и опытные разработчики со всего мира.
Регистрация на ML-трек доступна до 4 ноября.
👩💻 Задачка по Python
Создайте Python-приложение, которое загружает датасет, использует модель линейной регрессии для предсказания, и сохраняет метрики модели (MAE, RMSE) в файл metrics.json. Программа должна уметь загружать датасет в формате CSV, обучать модель и выводить результаты.
➡️ Пример:
• python app.py train data.csv — обучает модель, выводит метрики и сохраняет в metrics.json.
Решение задачи ⬇️
import sysЧитать полностью…
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_absolute_error, mean_squared_error
import json
def train_model(file_path):
# Загружаем данные
data = pd.read_csv(file_path)
X = data.drop('target', axis=1)
y = data['target']
# Разделение на тренировочные и тестовые данные
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Обучаем модель
model = LinearRegression()
model.fit(X_train, y_train)
# Предсказание
y_pred = model.predict(X_test)
# Вычисляем метрики
mae = mean_absolute_error(y_test, y_pred)
rmse = mean_squared_error(y_test, y_pred, squared=False)
# Сохраняем метрики
metrics = {'MAE': mae, 'RMSE': rmse}
with open('metrics.json', 'w') as f:
json.dump(metrics, f)
print(f"MAE: {mae}, RMSE: {rmse}")
if __name__ == "__main__":
if len(sys.argv) > 1:
train_model(sys.argv[1])
else:
print("Укажите путь к CSV-файлу.")
🔎 Подборка вакансий для мидлов
Junior Python Developer
🟢Python, Linux, SQL, Django
🟢от 50 000 ₽ | Без опыта
Data Scientist
🟢Python (OpenCV, NumPy, Pandas, PyTorch), SQL, Triton Inference Server, TensorRT, Docker, Kubernetes, Helm
🟢до 80 000 ₽ | Без опыта
ML-инженер (ML Engineer / Data Scientist)
🟢Python, SQL, TensorFlow, PyTorch
🟢Уровень дохода не указан | 1–3 года
Data scientist (Junior)
🟢Python, SQL
🟢до 2 000 Br | 1–3 года
Data Scientist (Junior)
🟢Python, Numpy, PyTorch, SQL
🟢от 600 $ | Без опыта
👩💻 Задачка по Python
Создайте Python-приложение, которое принимает набор данных с несколькими признаками и определяет наиболее важные признаки для предсказания целевой переменной с помощью модели RandomForest. Программа должна выводить результаты в виде списка признаков, отсортированных по важности.
➡️ Пример:
• python app.py data.csv — выводит важные признаки.
Решение задачи ⬇️
import pandas as pdЧитать полностью…
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
def feature_importance(file):
data = pd.read_csv(file)
X = data.drop(columns=['target'])
y = data['target']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = RandomForestClassifier()
model.fit(X_train, y_train)
importance = pd.Series(model.feature_importances_, index=X.columns).sort_values(ascending=False)
print("Важные признаки:\n", importance)
if __name__ == "__main__":
import sys
if len(sys.argv) != 2:
print("Использование: python app.py <файл.csv>")
else:
feature_importance(sys.argv[1])
👩💻 Задачка по Python
Создайте Python-приложение, которое принимает путь к CSV-файлу с историческими данными о ценах акций (дата, цена закрытия) и предсказывает, будет ли цена акций расти или падать на следующий день, используя простую линейную регрессию. Программа должна выводить прогноз в консоль и сохранять модель в файл model.pkl.
➡️ Пример:
• python app.py predict_stock prices.csv — предсказывает изменение цены акций на следующий день.
Решение задачи ⬇️
import sysЧитать полностью…
import pandas as pd
from sklearn.linear_model import LinearRegression
import pickle
def predict_stock(file):
data = pd.read_csv(file)
X = data.index.values.reshape(-1, 1)
y = data['Close'].values
model = LinearRegression()
model.fit(X, y)
next_day = [[len(X)]]
prediction = model.predict(next_day)
with open('model.pkl', 'wb') as f:
pickle.dump(model, f)
print(f'Прогноз на следующий день: {"Рост" if prediction > y[-1] else "Падение"}')
if __name__ == "__main__":
if len(sys.argv) != 3 or sys.argv[1] != 'predict_stock':
print('Использование: python app.py predict_stock <файл.csv>')
else:
predict_stock(sys.argv[2])
Яндекс Игры пришли к нам с запросом:
SELECT *
FROM subscribers
WHERE channel_name = 'devsp'
AND technical_skills IN ('SQL', 'Airflow', 'MapReduce', 'DataLens')
AND data_driven_approach = true
AND analytical_mindset = true
AND years_of_experience >= 2
AND fit = true;