Data Science | Machinelearning [ru] – Telegram
Data Science | Machinelearning [ru]
20.1K subscribers
630 photos
39 videos
29 files
3.52K links
Все о Data Science, машинном обучении и искусственном интеллекте: от базовой теории до cutting-edge исследований и LLM.

По вопросам рекламы или разработки - @g_abashkin

РКН: https://vk.cc/cJPGXD
Download Telegram
👩‍💻 Задачка по 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])
Please open Telegram to view this post
VIEW IN TELEGRAM
Как обработать пропущенные данные?

Пропущенные данные — частая проблема в 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)


🗣️ Пропущенные данные могут искажать результаты анализа, поэтому их нужно обрабатывать перед моделированием.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 Подборка вакансий для мидлов

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 $ | Без опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Оптимизируй свой AI: разоблачение 6 мифов о работе с векторами в Pgvector

Шесть заблуждений, которые мешают тебе использовать всю мощь векторных баз данных в AI. Развенчав эти мифы, ты сможешь раскрыть истинный потенциал векторов и значительно повысить эффективность твоих AI-проектов.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Задачка по 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-файлу.")
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 7 малоизвестных возможностей стандартной библиотеки Python

Стандартная библиотека Python – это кладезь возможностей. Мы представляем семь недооцененных модулей, которые помогут вам улучшить организацию данных, оптимизировать производительность и упростить распространение ваших программ.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🔎 Подборка вакансий для сеньоров

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 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Grok-2 в деле: Способен ли ИИ от Илона Маска превзойти конкурентов?

В середине августа мы видели анонс бета-версий Grok-2 и Grok-2 mini от стартапа Илона Маска xAI. Что ж, на дворе осень, как пел Anacondaz "на улице дубак, на сердце тлен и мрак", так пусть же Grok 2 сегодня станет тем самым, кто укроет зацензуренным пледом наши тела. Предлагаю начинать.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
Как работает кросс-валидация в 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()}')

Здесь модель обучается 5 раз (5-fold) на разных частях данных, и вычисляется средняя точность.

🗣️ Кросс-валидация помогает лучше понять, как модель будет работать на новых данных, улучшая её обобщение.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 Подборка вакансий для лидов

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 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Оценка LLM: метрики, фреймворки и лучшие практики

Статья объясняет, почему оценка LLM важна для бизнеса: модели ИИ не всегда достигают цели и нуждаются в доработке. Разбираются ключевые метрики, инструменты и лучшие практики для повышения надежности и точности.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
💡 Карьера — это не про «идеальную работу», а про опыт и умение адаптироваться

В мире, где всё меняется быстрее, чем ты успеваешь обновлять резюме, держаться за одну карьерную траекторию — всё равно что пытаться угнаться за горизонтом. Умение перестраиваться, пробовать новое и брать на себя задачи, которые немного пугают, — вот что реально важно. И это не про «выйди из зоны комфорта», а про осознанный выбор расти и не цепляться за привычное.

🎯 Что делать: пообщайся с коллегой из другой области, возьми на себя один проект вне своей зоны, попробуй новый инструмент или язык, устрой «ревизию» навыков — что сейчас реально работает на тебя, а что пора обновить? Простые шаги, но каждый — ключ к росту и новым возможностям.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 Подборка валютных вакансий

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 года
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Под капотом asyncio: принципы работы и ключевые концепции

Библиотека asyncio предоставляет полный набор инструментов для организации параллельного выполнения кода в Python с использованием концепции асинхронности. Но как на самом деле работает asyncio? Давайте разберемся в ключевых принципах и понятиях.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Задачка по 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)
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Как мы создаём Visionatrix: упрощая ComfyUI

В этой статье мы расскажем о нашем опыте работы с ComfyUI и разработке Visionatrix — надстройки, которая упрощает генерацию медиа. Мы обсудим ключевые проблемы, с которыми сталкиваются пользователи, наш подход к их решению, а также вкратце поделимся тем, как мы использовали ChatGPT и Claude для ускорения разработки в условиях ограниченного времени.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Задачка по 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)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔎 Подборка вакансий для джунов

Стажер 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 года
Please open Telegram to view this post
VIEW IN TELEGRAM