Data Science | Machinelearning [ru]
17.9K subscribers
459 photos
14 videos
29 files
3.32K links
Статьи на тему data science, machine learning, big data, python, математика, нейронные сети, искусственный интеллект (artificial intelligence)

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

РКН: https://vk.cc/cJPGXD
Download Telegram
⚙️ Нейро-дайджест: ключевые события мира 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
👩‍💻 Обучите модель для классификации текста с помощью 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 миллиона рублей.
🔥6👍32😁1
⚙️ Как обойти детекторы текста, сгенерированного ИИ

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
3
👩‍💻 Разделите данные на группы с помощью алгоритма 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
👍21
⚙️ Как алгоритм Recovering Difference Softmax (RDS) делает рекомендации и уведомления точнее и эффективнее

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

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

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
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
⚙️ Как все рынки мира оказались уязвимы конкуренции с любым умным айтишником

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

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

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

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

У вас есть список действий пользователей на платформе. Каждое действие представлено словарём с полями "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
3
🖥 Играемся с RTX 5090 (GB202) для инференса

Автор тестирует RTX 5090 в хостинге, сравнивает с 3090 и A100, гоняет gpu-burn и инференс-сетку, проверяя, есть ли прирост для ML-задач. Без фанатизма, но с графиком.

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

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
4
⚙️ Что такое Feature Scaling в ML и зачем он нужен?

Feature Scaling (масштабирование признаков) — это приведение всех признаков к одному масштабу, чтобы модель обучалась корректно.

Некоторые алгоритмы (например, k-NN, SVM, градиентный спуск) чувствительны к разнице в диапазонах данных

➡️ Пример:

from sklearn.preprocessing import StandardScaler
import numpy as np

X = np.array([[1, 100], [2, 300], [3, 500]])

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

print(X_scaled)


🗣️ В этом примере признаки приводятся к виду с нулевым средним и единичным стандартным отклонением.


Без масштабирования одна "большая" переменная может полностью доминировать над другими..

🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21
➡️ Объяснимый ИИ в ML и DL

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

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