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

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

РКН: https://vk.cc/cJPGXD
Download Telegram
👩‍💻 Оценка точности модели классификации (Accuracy Score)

Напишите функцию, которая вычисляет accuracy score — долю правильных предсказаний модели классификации. Это базовая метрика, часто используемая для оценки качества модели.

Функция работает следующим образом:

• Сравнивает каждую пару истинного (y_true) и предсказанного (y_pred) значения.

• Считает количество совпадений.

• Делит число правильных предсказаний на общее количество примеров


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

def accuracy_score(y_true, y_pred):
correct = sum(1 for true, pred in zip(y_true, y_pred) if true == pred)
return correct / len(y_true)

# Примеры использования
y_true = [0, 1, 1, 0, 1]
y_pred = [0, 0, 1, 0, 1]

print(accuracy_score(y_true, y_pred))
# Ожидаемый результат: 0.8
Please open Telegram to view this post
VIEW IN TELEGRAM
1
⚙️ Знакомьтесь, FRIDA. Открытая эмбеддинг-модель для русского языка

В этой статье мы расскажем о нашей новой модели FRIDA, которая сейчас (20.05.2025) занимает первое место в русскоязычном бенчмарке MTEB.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
3😁2🔥1
⚙️ Машинное обучение в Apache Spark с помощью MLlib

Показываем, как применить MLlib из Apache Spark в своих проектах, и делимся советами, чтобы не сжечь кластеры раньше времени. Всё просто, даже если вы не Data Jedi.

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

Data Engineer (Middle+/Senior)
🟢 AWS (S3, Glue, Athena, Redshift), Python, SQL, Data Lake, ETL, ClickHouse, Apache Spark, Kafka, Airflow
🟢 От 250 000 ₽ | 3–6 лет | Удалёнка / Гибрид

Senior Data Scientist LLM
🟢 Python, LLM, Transformers, RAG, NLP, SQL, MLOps, Vector DBs (pgvector, Milvus, Qdrant)
🟢 $3 500–4 000 | 6+ лет | Удалёнка

Senior Data Engineer
🟢 Python (OOP), SQL (оптимизация), FastAPI, DBT, GCP (BigQuery), Microservices, CI/CD
🟢 $4 000–6 000 | 6+ лет | Удалёнка
Please open Telegram to view this post
VIEW IN TELEGRAM
2
⚙️ Что у меня за распределение

Василий из Т-Банка объясняет, почему классические критерии согласия не всегда подходят для симуляции колл-центра. Покажет подводные камни и как не влететь в ловушку распределений.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥1
⚙️ Что такое токенизация в машинном обучении?

Токенизация — это процесс разбиения текста на отдельные части: слова, подслова или символы.
Часто используется на этапе предобработки текста для NLP-моделей.

Каждый токен — это минимальная смысловая единица, которую модель будет анализировать.

➡️ Пример:

from sklearn.feature_extraction.text import CountVectorizer

texts = ["Я люблю машинное обучение", "Обучение — это интересно"]

vectorizer = CountVectorizer()
X = vectorizer.fit_transform(texts)

print(vectorizer.get_feature_names_out())
print(X.toarray())

# Вывод:
['интересно' 'люблю' 'машинное' 'обучение' 'это' 'я']
[[0 1 1 1 0 1]
[1 0 0 1 1 0]]


🗣️ Токенизация превращает текст в числовую матрицу, понятную модели.
Это первый шаг в обработке текста перед обучением моделей на естественном языке.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63
⚙️ Нейро-дайджест: ключевые события мира AI за 12–19 мая 2025

В этом выпуске: Codex от OpenAI, GPT‑4.1, токсичный Grok, генератор от Tencent и агент DeepMind, который сам изобретает алгоритмы. ИИ неделя на максималках.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
4
👀 Stack Overflow умирает? Как ИИ вытесняет живые сообщества разработчиков

Разбираемся, почему Stack Overflow теряет аудиторию: виноваты ли ИИ, UX или жадность? Плюс — что делает администрация и что ждёт разработчиков в пост-SO эпоху.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
3
⚡️ Делай «кодовые разминки» перед тяжёлыми задачами

Сложная задача сразу после кофе? Мозг ещё не включился — и ты уже залип.

👉 Совет: начни день с 15 минут лёгкой задачи: мелкий фикс, улучшение логов, небольшой рефакторинг. Это разгоняет мысль, помогает включиться в поток и потом перейти к тяжёлому коду с полной скоростью.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15
👩‍💻 Задачка по Python

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

➡️ Пример:

python process_data.py data.csv age 30 — фильтрует строки, где значение в столбце age больше 30, и подсчитывает общее количество таких записей и среднее значение в другом числовом столбце, например, salary.

Решение задачи ⬇️

import csv
import sys

def process_large_csv(file_path, filter_column, threshold, aggregate_column):
count = 0
total_sum = 0.0

with open(file_path, 'r', encoding='utf-8') as file:
reader = csv.DictReader(file)

for row in reader:
# Преобразование значений для фильтрации и агрегации
try:
filter_value = float(row[filter_column])
aggregate_value = float(row[aggregate_column])
except ValueError:
continue # Пропускаем строки с некорректными данными

# Фильтрация строк по заданному условию
if filter_value > threshold:
count += 1
total_sum += aggregate_value

# Вывод итоговой статистики
if count > 0:
average = total_sum / count
print(f"Обработано записей: {count}")
print(f"Среднее значение {aggregate_column} для записей, где {filter_column} > {threshold}: {average:.2f}")
else:
print("Записи, соответствующие условиям фильтрации, не найдены.")

if __name__ == "__main__":
if len(sys.argv) < 5:
print("Использование: python process_data.py <file_path> <filter_column> <threshold> <aggregate_column>")
sys.exit(1)

file_path = sys.argv[1]
filter_column = sys.argv[2]
threshold = float(sys.argv[3])
aggregate_column = sys.argv[4]

process_large_csv(file_path, filter_column, threshold, aggregate_column)
Please open Telegram to view this post
VIEW IN TELEGRAM
5
⚙️ Код, железо, стратегия: в чем секрет победителей ML-соревнований?

Разбор отчёта о соревнованиях по ML за 2024 год: кто победил, как и почему. Без мотивационных цитат — только конкретные приёмы, модели и стратегии, которые реально приносят $22 млн.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥1
👩‍💻 Обучите модель для классификации текста с помощью 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
3
Яндекс поднял максимальное вознаграждение в bug bounty до 3 млн рублей.

За что? За критические уязвимости типа RCE и VM escape в Почте, Яндекс ID и Yandex Cloud.

Плюс выросли выплаты за SQL-инъекции. Это хорошая возможность для этичных хакеров проверить себя, ведь речь идет о сервисах Яндекса, которым доверяют чувствительную информацию миллионы пользователей. Так компания хочет обеспечить всестороннюю оценку безопасности своих систем.

Ну а для тех, кому этого недостаточно, в программе багбаунти Яндекса недавно появилось отдельное направление по нейросетям — там можно получить за уязвимость до 1 миллиона рублей.
🔥7👍32😁1
⚙️ Как обойти детекторы текста, сгенерированного ИИ

Автор исследует, почему нейросети пока плохо отличают ИИ-тексты от человеческих, и делится, что реально работает (или не очень), если вы вдруг решите их «перехитрить».

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥1
👩‍💻 Разделите данные на группы с помощью алгоритма K-Means

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

Алгоритм K-Means автоматически делит данные на 3 группы на основе близости точек.
Это полезно в задачах сегментации клиентов, поиска паттернов в данных, рекомендаций и др.


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

import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs

# Генерация данных: 300 точек, 3 центра
X, _ = make_blobs(n_samples=300, centers=3, random_state=42)

# Модель кластеризации
kmeans = KMeans(n_clusters=3, random_state=42)
kmeans.fit(X)

# Визуализация
plt.scatter(X[:, 0], X[:, 1], c=kmeans.labels_, cmap='viridis')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1],
s=200, c='red', marker='X', label='Центры кластеров')
plt.legend()
plt.show()
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
⚙️ Как алгоритм Recovering Difference Softmax (RDS) делает рекомендации и уведомления точнее и эффективнее

RDS — это про то, как машинке выбрать лучший вариант уведомления или карточки, чтобы ты вернулся. Объясняем, как он усиливает ML-модели и растит вовлечённость пользователей.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥1
⚙️ Где ИИ врёт и как с этим жить — мой гайд после фейлов

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥1
🧠 Что делает train_test_split в ML и зачем он нужен

Функция train_test_split() из библиотеки sklearn разбивает данные на обучающую и тестовую выборки.

Это важно, чтобы проверить, как хорошо модель работает на невидимых данных.

➡️ Пример:

from sklearn.model_selection import train_test_split

X = [[1], [2], [3], [4], [5]]
y = [0, 0, 1, 1, 1]

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=42)

print("Обучение:", X_train)
print("Тест:", X_test)


🗣️ Почему важно:

• Модель не должна учиться на тех же данных, на которых её оценивают

• test_size указывает, какой процент данных пойдёт на тест

• random_state нужен для воспроизводимости

Это один из самых базовых, но обязательных шагов в любом ML-проекте


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥1