Статьи на тему data science, machine learning, big data, python, математика, нейронные сети, искусственный интеллект (artificial intelligence) Англоязычный канал по DS и Machinelearning -https://t.me/ds_international По сотрудничеству - @g_abashkin
⚙️ Великая иллюзия Copilot
Рассказываю, как Copilot в парном программировании может быть опаснее любой нейросети — баги, хаос, StackOverflow-копипасты и моя потерянная вера в здравый смысл.
Читать...
⚙️ Тиндер для работодателей и соискателей: как мы разработали алгоритм мэтчинга на Авито
Я рассказываю, как мы запилили мэтчинг в «Авито Подработке»: без анкет, но с кучей данных, офлайн-тестами и ML. Делюсь опытом, как сделать выдачу умнее и продукт лучше.
Читать...
⚙️ Что такое StandardScaler в Data Science и зачем он используется?StandardScaler
из библиотеки scikit-learn
— это инструмент для нормализации данных. Он приводит признаки (столбцы данных) к одному масштабу со средним значением 0 и стандартным отклонением 1.
Это важно для алгоритмов машинного обучения, чувствительных к масштабу данных — например, линейной регрессии, SVM или KMeans.
➡️ Пример:
from sklearn.preprocessing import StandardScaler
import numpy as np
X = np.array([[10, 200],
[20, 300],
[30, 400]])
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
print(X_scaled)
🗣️ В этом примере значения всех признаков преобразуются так, что каждый столбец имеет среднее значение 0 и одинаковый масштаб. Это ускоряет обучение и повышает качество модели.
⚙️ Что такое StandardScaler
из scikit-learn и зачем он нужен?StandardScaler
— это инструмент из библиотеки scikit-learn
, который стандартизирует данные: приводит их к распределению со средним 0 и стандартным отклонением 1. Это важно перед обучением моделей, особенно для алгоритмов, чувствительных к масштабу (например, SVM, KNN, линейная регрессия).
➡️ Пример:
from sklearn.preprocessing import StandardScaler
import numpy as np
X = np.array([[10, 200], [15, 300], [14, 250]])
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
print(X_scaled)
🗣️ StandardScaler — must-have шаг в пайплайне предварительной обработки данных для большинства классических ML-моделей
🧘 Перезагружайся осознанно, а не прокрастинацией
Переутомился — и вместо отдыха залипаешь в YouTube, соцсети, чат с мемами. Отдохнул? Нет.
👉 Совет: включай «активный отдых» — прогулку, растяжку, даже 5 минут с закрытыми глазами. Это реально перезагружает мозг. Прокрастинация даёт иллюзию паузы, но не даёт ресурса на следующий рывок.
📈 Подборка статей для вашей карьеры
• Продуктивность и почему «сделать много всего» — это не про неё
• Куда выйти из айти?
• Как я боролся с выгоранием в ИТ: лайфхаки и личный опыт
• ИТ-пенсионеры и где они обитают
• Почему мне нужно, чтобы ты вкатился в айти
🤔 На START, внимание, марш: как победить галлюцинации и научить LLM точным вычислениям
START — опенсорсная LLM для точных вычислений и проверки кода. В START решены две главные проблемы большинства обычных моделей: галлюцинации и ошибки в многоэтапных расчетах. В статье разберемся, зачем и как именно эти проблемы решены..
Читать...
🖥 Играемся с RTX 5090 (GB202) для инференса
Автор тестирует RTX 5090 в хостинге, сравнивает с 3090 и A100, гоняет gpu-burn и инференс-сетку, проверяя, есть ли прирост для ML-задач. Без фанатизма, но с графиком.
Читать...
🗣 Синтез речи 2025: топ-4 бесплатных нейросетей для озвучки текста
Сравниваем 4 синтеза речи: интонации, паузы, эмоции. Кто из них справится с «Хоббитом» и сможет звучать как рассказчик, а не как робот? Проверим голосом, а не графиком.
Читать...
Где взять ресурсы для обучения ML-моделей и анализа больших данных?
Все эти сложные задачи можно решить на серверах с GPU от Selectel — на покупку оборудования тратиться не придется, а все ресурсы GPU только ваши.
Преимущества аренды сервера с GPU в Selectel: https://slc.tl/46jmk
☑️Оптимальный сервер под ваши задачи. Выбирайте из десятка готовых конфигураций или соберите собственную с нужной видеокартой под ваши запросы и бюджет;
☑️Более 20 моделей видеокарт в наличии: от базовой GTX 1080 до профессиональных H100 и А100;
☑️Безопасность хранения и обработки данных. Серверы соответствуют 152-ФЗ и «из коробки» имеют бесплатную защиту от DDoS-атак.
Арендуйте серверы с GPU за пару минут: https://slc.tl/46jmk
Реклама. АО «Селектел», ИНН 7810962785, ERID: 2Vtzqwia3qo
⚙️ Где ИИ врёт и как с этим жить — мой гайд после фейлов
Автор копает, почему ИИ фантазирует, как это мешает в работе и чем тут помогут промпты. В финале — гайд, как писать запросы без сюрпризов.
Читать...
Есть два типа обучения Data Science.
1️⃣ Смотреть лекции и повторять за ментором.
2️⃣ Сразу брать реальные задачи и учиться на практике.
Если вам ближе второй тип, симулятор Data Science от karpovꓸcourses — для вас. Этот курс для тех, кто не ищет легких путей, и знает: на одной теории мидлом не стать.
Вас ждет интенсивное погружение в аналитику с первых дней.
🔹 Решите 80+ бизнес-задач — от простых и быстрых до заданий со звездочкой.
🔹 Поработаете над кейсами из разных сфер: Retail, E-commerce, FinTech, FoodTech, EdTech.
🔹 Создадите проект для портфолио под руководством опытным аналитиков.
🔹 Прокачаете самые нужные навыки и работу с инструментами: Python, SQL, ClickHouse, FastAPI, MLFlow, DVC, Spark, LLM, рекомендательные системы, прогнозирование, метрики, A/B-тесты.
С 12 по 31 мая записываться на обучение еще выгоднее. Если купите доступ на 6 месяцев, получите 7-ой — в подарок. А если на 9 месяцев — два в подарок.
Пора решать задачи, а не смотреть, как это делают другие.
Записаться на курс
Реклама. ООО «Карпов Курсы», ИНН: 7811764627, erid: 2VtzqufjPUg
⚙️ Как обойти детекторы текста, сгенерированного ИИ
Автор исследует, почему нейросети пока плохо отличают ИИ-тексты от человеческих, и делится, что реально работает (или не очень), если вы вдруг решите их «перехитрить».
Читать...
🔥 Самые интересные статьи за последние дни:
• Построение базы знаний компании и поиска документов на LLM и RAG
• Что побуждает LLM врать и как этого избежать в своих продуктах
• Ломаем капчу 4Chan
• На чём учатся современные модели машинного перевода: опыт команды Яндекс Переводчика
• Gemini вырывается вперед, Китай спамит моделями, в Minecraft запустили AI-агентов: главные события ноября в сфере ИИ
⚙️ Код, железо, стратегия: в чем секрет победителей ML-соревнований?
Разбор отчёта о соревнованиях по ML за 2024 год: кто победил, как и почему. Без мотивационных цитат — только конкретные приёмы, модели и стратегии, которые реально приносят $22 млн.
Читать...
👩💻 Вычисление “стабильных” признаков
Вам дана матрица признаков — список списков, где каждая строка представляет собой объект, а каждый столбец — отдельный числовой признак.
Ваша задача — определить, какие признаки можно считать стабильными.
Стабильный признак — это признак, у которого стандартное отклонение по всем объектам меньше заданного порога 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]
⚙️ RAG: борьба с низким качеством ответов в условия экономии памяти на GPU
В статье показали, как делали ИИ-помощника на RAG для юристов внутри компании: с какими проблемами столкнулись, как прокачивали точность ответов и экономили память на видеокартах.
Читать...
➡️ Что забирает до 90% времени на созвонах и как перестать проводить их впустую
Когда митапов больше, чем решений, пора что-то менять. Мы выработали способ делать онлайн-созвоны короче, полезнее и без «а что мы вообще решили?». Делюсь, как именно.
Читать...
⚙️ Yandex Cloud представила апдейты своей платформы AI Studio на конференции Data&ML2Business.
Упор — на кастомизацию RAG под конкретные базы знаний при работе с AI Assistant API: поддерживаются таблицы, pdf, метаданные для чанков, рефразер запросов и batch-инференс. У инструмента появился визуальный интерфейс, так что не обязательно городить пайплайны руками.
Совместимость с OpenAI API упрощает интеграцию — решения на базе AI Studio легко встраиваются в LangChain, AutoGPT и другие популярные ML-стэки. При этом платформу теперь можно развернуть on-premise на собственной инфраструктуре. Также рассказали про обновления в речевой аналитике – теперь нейросети сами подберут смысловые теги для поиска нужной информации в диалогах.
Также компания представила новые решения для работы с данными – представила управляемые сервисы Spark и Trino. В Datalens добавили кастомизация графиков на JS и публичную витрину дашбордов.
Читать…
➡️ Объяснимый ИИ в ML и DL
Разбираемся, зачем нужен объяснимый ИИ, как подступиться к интерпретации моделей и что с этим делать на практике — от EDA до XAI на примере. Всё на русском, без магии.
Читать...
⚙️ Что такое 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)
🗣️ В этом примере признаки приводятся к виду с нулевым средним и единичным стандартным отклонением.
🤖📈 Папка Экспертов: ИИ, ИТ и Маркетинг
/channel/addlist/f_e6mA-BQio3YmJi
Ключевые инсайты, свежие новости и экспертные комментарии этой недели
Что внутри подборки:
✅ Актуальные тренды в мире ИИ и ИТ: от новых технологий до внедрения в бизнес
✅ Изменения в алгоритмах и платформах: Google, Meta, Яндекс, Telegram, SEO, таргетинг
✅ Разбор свежих кейсов: как используют ИИ в маркетинге и автоматизации
✅ Практические советы по интеграции AI-инструментов в маркетинговые процессы
✅ Наша экспертная аналитика: что эти новости значат для бизнеса и как адаптироваться
/channel/addlist/f_e6mA-BQio3YmJi
Почему это важно:
Технологии развиваются стремительно — то, что работало вчера, сегодня устаревает.
Мы отбираем действительно важное, чтобы вы не тратили время на фильтрацию потока информации, а получали только то, что помогает масштабировать бизнес и находить новые точки роста.
Для кого:
• Для предпринимателей, которые ищут новые возможности для развития
• Для маркетологов, которые хотят быть на шаг впереди рынка
• Для ИТ-специалистов, которые внедряют AI-решения в бизнес
📩 Подписывайтесь, чтобы быть в курсе ключевых изменений в ИИ, ИТ и маркетинге.
/channel/addlist/f_e6mA-BQio3YmJi
👩💻 Предсказание уникальности пользователя
У вас есть список действий пользователей на платформе. Каждое действие представлено словарём с полями "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]
⚙️ Как все рынки мира оказались уязвимы конкуренции с любым умным айтишником
История о том, как в текущем моменте истории, по сути любой разработчик может в одиночку задизраптить любой вертикальный рынок и даже отрасль.
Читать...
🧠 Что делает 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-проекте
⚙️ Как алгоритм Recovering Difference Softmax (RDS) делает рекомендации и уведомления точнее и эффективнее
RDS — это про то, как машинке выбрать лучший вариант уведомления или карточки, чтобы ты вернулся. Объясняем, как он усиливает ML-модели и растит вовлечённость пользователей.
Читать...
👩💻 Разделите данные на группы с помощью алгоритма 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()
Яндекс поднял максимальное вознаграждение в bug bounty до 3 млн рублей.
За что? За критические уязвимости типа RCE и VM escape в Почте, Яндекс ID и Yandex Cloud.
Плюс выросли выплаты за SQL-инъекции. Это хорошая возможность для этичных хакеров проверить себя, ведь речь идет о сервисах Яндекса, которым доверяют чувствительную информацию миллионы пользователей. Так компания хочет обеспечить всестороннюю оценку безопасности своих систем.
Ну а для тех, кому этого недостаточно, в программе багбаунти Яндекса недавно появилось отдельное направление по нейросетям — там можно получить за уязвимость до 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']
👩💻 Задачка по 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)