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

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

РКН: https://vk.cc/cJPGXD
Download Telegram
🔎 Подборка вакансий для мидлов

​Middle Data Scientist (лидогенерация)
🟢Python, Airflow, MLflow, Hadoop (Hive, Spark), Oracle (SQL, PL/SQL), Linux, Bash, Git
🟢Уровень дохода не указан | 1–3 года​

Data Engineer (Middle)
🟢Python (pandas, Airflow), PostgreSQL, MongoDB, ClickHouse, AWS, Yandex Cloud, Kafka, Spark
🟢Уровень дохода не указан | 1–3 года​

Python Developer (Middle)
🟢Python, Flask, FastAPI, React.js, PostgreSQL, Airflow, Git, Docker, ElasticSearch, Kafka
🟢Уровень дохода не указан | 3–6 лет
Please open Telegram to view this post
VIEW IN TELEGRAM
1
➡️ Человек, которого выбрал ИИ

Рассказывается, как ИИ научили выбирать сперматозоиды для ЭКО, и один из них уже стал человеком. Не теория, а реальный кейс: без философии, с метриками и видео процедур.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
2
👩‍💻 Обучите модель для классификации текста с помощью Naive Bayes

Создайте простую модель машинного обучения, которая определяет, является ли текст позитивным или негативным. Используем sklearn и алгоритм Naive Bayes

Решение задачи🔽

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.pipeline import make_pipeline

# Обучающие данные
texts = ["Это отличный фильм", "Ужасный опыт", "Мне понравилось", "Очень скучно", "Прекрасная история"]
labels = ['positive', 'negative', 'positive', 'negative', 'positive']

# Модель
model = make_pipeline(CountVectorizer(), MultinomialNB())
model.fit(texts, labels)

# Прогноз
print(model.predict(["Фильм был ужасен"])) # ['negative']
print(model.predict(["Обожаю это кино"])) # ['positive']
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥1
👀 Рептилоиды победили… но это не точно

ИИ всё ещё не рептилоид: в статье — скептический разбор "интеллекта" нейросетей. Проверка на слонах, эволюция ответов Алисы, трезвый взгляд на истерики СМИ и разница между AGI и автокомплитом.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥1
👀 WorkTeam: новый мультиагентный фреймворк для автоматизации сложных бизнес-процессов

Показываю, как платформа WorkTeam превращает описания процессов на обычном языке в работающий бизнес-процесс — без кодеров, без боли и почти без магии.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥1
👩‍💻 Задачка по 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
👍6
➡️ Секреты Spark в Arenadata Hadoop: как мы ускорили построение витрин для задач ML

Покажем, как связали нашу платформу ИИ и Озеро данных, чтобы модели удобно работали с витринами через Spark. Немного архитектуры, немного боли, немного магии.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥1
⚙️ Что такое data leakage в машинном обучении и почему это опасно?

Data leakage (утечка данных) — это ситуация, когда модель случайно получает информацию о будущем (о целевой переменной), которая недоступна на момент предсказания. Это приводит к переоценке качества модели во время обучения и к плохой работе на реальных данных.

➡️ Пример:

import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split

# Пример: диагностические данные пациента
df = pd.DataFrame({
'age': [25, 40, 60, 35],
'blood_pressure': [120, 130, 150, 110],
'has_disease': [0, 1, 1, 0],
'diagnosis_code': [0, 1, 1, 0] # случайно совпадает с целевой переменной
})

X = df.drop('has_disease', axis=1)
y = df['has_disease']

X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

model = LogisticRegression()
model.fit(X_train, y_train)
print("Train accuracy:", model.score(X_train, y_train))


🗣️ В этом примере diagnosis_code напрямую связан с целевой переменной has_disease. Модель «угадывает» ответы на тренировке, но это не работает в реальности. Такое скрытое совпадение — типичный пример data leakage
Please open Telegram to view this post
VIEW IN TELEGRAM
1
VI российский саммит и Премия CDO/CDTO Summit & Awards 2025 собрали лидеров цифровой трансформации из различных отраслей.

Это событие стало площадкой для обсуждения актуальных вопросов цифровизации, развития инфраструктуры на основе российского ПО и технологий, а также обмена опытом между представителями бизнеса и органов власти.

Сразу две награды получила МТС Web Services:

🟢 Платформа MWS Octapi получила Гран-при в номинации «Digital-платформа года». Octapi позволяет бесшовно интегрировать сервисы в экосистему, обеспечивая их эффективное взаимодействие и повышая надежность.

🟢 Павел Воронин генеральный директор МТС Web Services стал лауреатом премии CDO/CDTO, войдя в тройку лучших СЕО 2025 года в номинации «СЕО года цифровой компании».
Please open Telegram to view this post
VIEW IN TELEGRAM
2
📝 Подборка вакансий для лидов

Data Architect
Apache Hadoop, Apache Airflow, Greenplum, Apache NiFi, DWH, Apache Spark
Уровень дохода не указан | Без опыта

Team Lead Data Platform
Python, SQL, Git, Apache Hadoop, Apache Spark, Apache Airflow, Apache Kafka
Уровень дохода не указан | Без опыта

Data Science Tech Lead/Product owner
Python, SQL, Hadoop, Spark, Airflow
Уровень дохода не указан | Без опыта
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🤡 Endless Fun Machine: бесконечный генератор смешных картинок

Расскажу про проект Endless Fun Machine: как я собрал генератор, где ИИ сам придумывает шутки и рисует их в мемы. И заодно покажу, как это можно адаптировать для синтетических данных

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
2👎1🔥1
🔎 Подборка зарубежных вакансий

Data Scientist рекомендательные системы (full time office)
🟢Python, pandas, sklearn, scipy, matplotlib, catboost, SQL, Git, Docker
🟢Уровень дохода не указан | 3–6 лет

Senior Data Scientist (Recommender Systems)
🟢Python, PyTorch, PySpark, ClickHouse, Jenkins, Airflow, ONNX
🟢от 5 000 до 6 500 € | 3–6 лет

Data Scientist (Кипр)
🟢Python, SQL, pandas, numpy, seaborn, ML, Big Data, Deep Learning
🟢от 4 000 € | 1–3 года
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥1
🧹 Заводи «технический долг» как отдельную задачу

Фраза «потом починим» без тикета = «никогда не починим».

👉 Совет: всё, что требует доработки, выноси в явные задачи или хотя бы в отдельный трекер. Технический долг нужно видеть, чтобы его гасить. Складывать его «в голове» — значит накапливать долги втайне до катастрофы.
Please open Telegram to view this post
VIEW IN TELEGRAM
10🐳1
🤔 Размер имеет значение: как исторические данные помогают на этапе дизайна A/B-теста

Статья изучает применение метода CUPED в A/B-тестах для повышения чувствительности и сокращения выборок. Рассматривается его использование на этапе дизайна эксперимента без потери статистической мощности.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
3👎1
👩‍💻 Проверка, являются ли две строки анаграммами

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

Пример:

result1 = are_anagrams("listen", "silent")
print(result1) # Ожидаемый результат: True

result2 = are_anagrams("hello", "world")
print(result2) # Ожидаемый результат: False


Решение задачи🔽

def are_anagrams(str1, str2):
# Удаляем пробелы и приводим к одному регистру
str1 = ''.join(str1.lower().split())
str2 = ''.join(str2.lower().split())

# Проверяем, равны ли отсортированные символы
return sorted(str1) == sorted(str2)

# Пример использования:
result1 = are_anagrams("listen", "silent")
print(result1) # Ожидаемый результат: True

result2 = are_anagrams("hello", "world")
print(result2) # Ожидаемый результат: False
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👎2
⚙️ Пишем свою Diffusion модель с нуля

Статья предлагает разобраться в устройстве Diffusion моделей, их математике и принципах работы. Автор делится простыми объяснениями, примерами кода и результатами генерации изображений на собственной модели.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
👩‍💻 Поиск самого часто встречающегося элемента в списке

Напишите функцию, которая принимает список и возвращает элемент, который встречается чаще всего. Если таких элементов несколько, вернуть любой из них.

Пример:

numbers = [1, 3, 2, 3, 4, 1, 3, 2, 1]
result = most_frequent(numbers)
print(result)
# Ожидаемый результат: 3 (или 1, если в списке оба встречаются одинаково часто)


Решение задачи🔽

from collections import Counter

def most_frequent(lst):
count = Counter(lst)
return max(count, key=count.get)

# Пример использования:
numbers = [1, 3, 2, 3, 4, 1, 3, 2, 1]
result = most_frequent(numbers)
print(result) # Ожидаемый результат: 3
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳31
🔎 Подборка вакансий для джунов

Junior Data Engineer
🟢Python, C#, SQL, Spark, Kafka, Airflow, DeltaLake, Kubernetes
🟢до 200 000 ₽ | 1–3 года

Data Analyst (Junior) | Аналитик Данных (Младший)
🟢Python, SQL, Power BI, Grafana, PostgreSQL, ClickHouse, Docker
🟢Уровень дохода не указан | 1–3 года

Data инженер DWH Junior (Hadoop)
🟢Hadoop, Hive, Spark, SQL, Java, Airflow, Git, Jira, Confluence
🟢Уровень дохода не указан | 1–3 года
Please open Telegram to view this post
VIEW IN TELEGRAM
3
⚙️ Рейтинг 6 нейросетей для сокращения текста, ч. 1: промты рвут контент на части

В статье собрали 25 промтов для сжатия текста и сравнили, как разные нейросети вроде ChatGPT-4o и Gemini-2.5 превращают километры букв в понятные и короткие саммари.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1