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

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

РКН: https://vk.cc/cJPGXD
Download Telegram
⚙️ Что такое токенизация в машинном обучении?

Токенизация — это процесс разбиения текста на отдельные части: слова, подслова или символы.
Часто используется на этапе предобработки текста для 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
52
⚙️ Нейро-дайджест: ключевые события мира AI за 12–19 мая 2025

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
2😁2
🧠 Что делает 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
32
👀 Stack Overflow умирает? Как ИИ вытесняет живые сообщества разработчиков

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
4👎21
⚙️ Код, железо, стратегия: в чем секрет победителей ML-соревнований?

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
32
👩‍💻 Задачка по 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
32
⚙️ Как обойти детекторы текста, сгенерированного ИИ

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
21
⛓️ Обновление зависимости — это маленький рефакторинг

Обновил библиотеку, всё сломалось, и теперь ты в дебаге на два часа? Классика.

👉 Совет: относись к обновлению зависимостей как к отдельной, полноценной задаче. Тесты, чеклисты, небольшие коммиты. Чем меньше сюрпризов ты оставишь себе на проде — тем крепче будешь спать.
Please open Telegram to view this post
VIEW IN TELEGRAM
21
⚙️ Как алгоритм Recovering Difference Softmax (RDS) делает рекомендации и уведомления точнее и эффективнее

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

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

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
51
👩‍💻 Предсказание уникальности пользователя

У вас есть список действий пользователей на платформе. Каждое действие представлено словарём с полями "user_id", "action", и "timestamp". Нужно реализовать функцию, которая определит, является ли пользователь "уникальным".

Уникальный пользователь — это тот, кто:

• совершал более 3 действий,
• все действия происходили в разные дни,
• не совершал одинаковые действия дважды.


Верните список user_id, соответствующих этому критерию.

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

from collections import defaultdict
from datetime import datetime

def find_unique_users(logs):
activity = defaultdict(lambda: {"actions": set(), "days": set(), "count": 0})

for log in logs:
user = log["user_id"]
action = log["action"]
date = datetime.fromisoformat(log["timestamp"]).date()

activity[user]["actions"].add(action)
activity[user]["days"].add(date)
activity[user]["count"] += 1

result = []
for user, data in activity.items():
if (
data["count"] > 3 and
len(data["days"]) == data["count"] and
len(data["actions"]) == data["count"]
):
result.append(user)

return result

# Пример использования
logs = [
{"user_id": 1, "action": "login", "timestamp": "2023-05-01T10:00:00"},
{"user_id": 1, "action": "view", "timestamp": "2023-05-02T11:00:00"},
{"user_id": 1, "action": "click", "timestamp": "2023-05-03T12:00:00"},
{"user_id": 1, "action": "logout", "timestamp": "2023-05-04T13:00:00"},

{"user_id": 2, "action": "login", "timestamp": "2023-05-01T10:00:00"},
{"user_id": 2, "action": "login", "timestamp": "2023-05-01T11:00:00"},
{"user_id": 2, "action": "click", "timestamp": "2023-05-01T12:00:00"},
]

print(find_unique_users(logs)) # Ожидаемый результат: [1]
Please open Telegram to view this post
VIEW IN TELEGRAM
22
⚙️ Как все рынки мира оказались уязвимы конкуренции с любым умным айтишником

История о том, как в текущем моменте истории, по сути любой разработчик может в одиночку задизраптить любой вертикальный рынок и даже отрасль.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
33
🗣 Синтез речи 2025: топ-4 бесплатных нейросетей для озвучки текста

Сравниваем 4 синтеза речи: интонации, паузы, эмоции. Кто из них справится с «Хоббитом» и сможет звучать как рассказчик, а не как робот? Проверим голосом, а не графиком.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
22
⚙️ Что такое argparse в Python?

argparse — это стандартный модуль Python для работы с аргументами командной строки. Он позволяет удобно разбирать, валидировать и документировать входные параметры.

➡️ Пример:

import argparse

# Создаём парсер аргументов
parser = argparse.ArgumentParser(denoscription="Пример работы с argparse")
parser.add_argument("--name", type=str, help="Имя пользователя")
parser.add_argument("--age", type=int, help="Возраст пользователя")

# Разбираем аргументы
args = parser.parse_args()

# Используем аргументы
print(f"Привет, {args.name}! Тебе {args.age} лет.")


🗣️ В этом примере argparse разбирает аргументы --name и --age, переданные через командную строку. Это упрощает создание CLI-приложений.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
21
🤔 На START, внимание, марш: как победить галлюцинации и научить LLM точным вычислениям

START — опенсорсная LLM для точных вычислений и проверки кода. В START решены две главные проблемы большинства обычных моделей: галлюцинации и ошибки в многоэтапных расчетах. В статье разберемся, зачем и как именно эти проблемы решены..

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
33🔥2
➡️ Объяснимый ИИ в ML и DL

Разбираемся, зачем нужен объяснимый ИИ, как подступиться к интерпретации моделей и что с этим делать на практике — от EDA до XAI на примере. Всё на русском, без магии.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
21🔥1
👩‍💻 Вычисление “стабильных” признаков

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

Стабильный признак — это признак, у которого стандартное отклонение по всем объектам меньше заданного порога threshold.


Реализуйте функцию find_stable_features(matrix, threshold), которая возвращает список индексов признаков (столбцов), удовлетворяющих этому условию.

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

import numpy as np

def find_stable_features(matrix, threshold=0.1):
data = np.array(matrix)
stds = np.std(data, axis=0)
stable_indices = [i for i, std in enumerate(stds) if std < threshold]
return stable_indices

# Пример входных данных
X = [
[1.0, 0.5, 3.2],
[1.0, 0.49, 3.1],
[1.0, 0.52, 3.0],
[1.0, 0.5, 3.3],
]

print(find_stable_features(X, threshold=0.05))
# Ожидаемый результат: [0, 1]
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
➡️ Что забирает до 90% времени на созвонах и как перестать проводить их впустую

Когда митапов больше, чем решений, пора что-то менять. Мы выработали способ делать онлайн-созвоны короче, полезнее и без «а что мы вообще решили?». Делюсь, как именно.

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