Data Science | Machinelearning [ru]
Все о Data Science, машинном обучении и искусственном интеллекте: от базовой теории до cutting-edge исследований и LLM. MAX - https://max.ru/devsp Личный блог - @just_genych По вопросам рекламы или разработки - @g_abashkin РКН: https://vk.cc/cJPGXD
Больше📈 Аналитический обзор Telegram-канала Data Science | Machinelearning [ru]
Канал Data Science | Machinelearning [ru] (@devsp) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 19 696 подписчиков, занимая 6 672 место в категории Технологии и приложения и 33 379 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 19 696 подписчиков.
Согласно последним данным от 31 октября, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -102, а за последние 24 часа — -1, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 7.84%. В первые 24 часа после публикации контент обычно набирает 4.63% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 1 544 просмотров. В течение первых суток публикация набирает 913 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 4.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как llm, nvidia, контекст, openai, архитектура.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“Все о Data Science, машинном обучении и искусственном интеллекте: от базовой теории до cutting-edge исследований и LLM.
MAX - https://max.ru/devsp
Личный блог - @just_genych
По вопросам рекламы или разработки - @g_abashkin
РКН: https://vk.cc/cJPGXD”
Благодаря высокой частоте обновлений (последние данные получены 01 ноября, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
"A", "B", "C"), который был закодирован в виде One-Hot Encoding, а затем данные были искажены случайным шумом.
Реализуйте функцию recover_category(matrix, labels), которая по входной матрице matrix (список списков, где каждая строка — вектор с плавающими значениями после шума) и списку labels (названия категорий в нужном порядке) должна восстановить название исходной категории для каждой строки — ту, у которой была 1 до добавления шума.
Шум малый, но может нарушать точные значения (например, 1.0 становится 0.91, 0.0 — 0.08 и т.п.).
Решение задачи🔽
def recover_category(matrix, labels): result = [] for row in matrix: max_index = row.index(max(row)) result.append(labels[max_index]) return result # Пример использования matrix = [ [0.05, 0.92, 0.03], [0.89, 0.06, 0.12], [0.12, 0.08, 0.83] ] labels = ["A", "B", "C"] print(recover_category(matrix, labels)) # Ожидаемый результат: ['B', 'A', 'C']
plot_distributions, которая принимает DataFrame и автоматически определяет числовые и категориальные признаки. Затем строит гистограммы или bar-графики в зависимости от типа данных. Это удобно для EDA (исследовательского анализа данных).
Решение задачи🔽
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns def plot_distributions(df, max_categories=10): for column in df.columns: plt.figure(figsize=(6, 4)) if pd.api.types.is_numeric_dtype(df[column]): sns.histplot(df[column].dropna(), kde=True) plt.title(f'Гистограмма: {column}') elif df[column].nunique() <= max_categories: df[column].value_counts().plot(kind='bar') plt.title(f'Категории: {column}') else: print(f'Пропущен {column}: слишком много уникальных категорий') continue plt.tight_layout() plt.show() # Пример использования df = pd.DataFrame({ 'age': [23, 45, 31, 35, 62, 44, 23], 'gender': ['male', 'female', 'female', 'male', 'male', 'female', 'female'], 'income': [40000, 50000, 45000, 52000, 61000, 48000, 46000] }) plot_distributions(df)
KNeighborsClassifier и сделайте предсказание. Это классическая задача для первых шагов в машинном обучении.
Решение задачи🔽
from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score # Загружаем данные iris = load_iris() X, y = iris.data, iris.target # Делим на обучающую и тестовую выборки X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # Обучаем модель model = KNeighborsClassifier(n_neighbors=3) model.fit(X_train, y_train) # Предсказание y_pred = model.predict(X_test) # Оценка качества print(f"Точность: {accuracy_score(y_test, y_pred):.2f}")
logging в Python?
logging — это встроенный модуль Python для создания логов, которые помогают отлаживать и мониторить работу приложений.
➡️ Пример:
import logging
# Настройка базового уровня логирования
logging.basicConfig(level=logging.INFO)
# Создание лога
logging.info("Приложение запущено")
logging.warning("Это предупреждение!")
logging.error("Произошла ошибка")
🗣️ В этом примере модуль logging создаёт сообщения разного уровня важности. Логирование позволяет отслеживать работу приложений и находить проблемы в коде.🖥 Подробнее тут
X — список списков с числовыми признаками. Один или несколько признаков были случайно сгенерированы, и не несут полезной информации (то есть, они не коррелируют ни с одним другим).
Нужно реализовать функцию drop_random_features(X, threshold=0.05), которая вернёт индексы признаков, слабо коррелирующих со всеми остальными (по модулю корреляции Пирсона).
Если признак не коррелирует ни с одним другим больше, чем на threshold, он считается псевдослучайным и подлежит удалению.
Цель:
Найти признаки, которые не имеют статистической связи с другими и потенциально являются шумом. Возвращать нужно их индексы.Решение задачи🔽
import numpy as np def drop_random_features(X, threshold=0.05): X = np.array(X) n_features = X.shape[1] to_drop = [] for i in range(n_features): max_corr = 0 for j in range(n_features): if i != j: corr = abs(np.corrcoef(X[:, i], X[:, j])[0, 1]) max_corr = max(max_corr, corr) if max_corr < threshold: to_drop.append(i) return to_drop # Пример использования np.random.seed(42) X = np.column_stack([ np.linspace(1, 10, 100), # линейный np.linspace(10, 1, 100), # обратный np.random.rand(100), # шум np.linspace(5, 50, 100) + np.random.rand(100) * 0.1 # почти линейный ]) print(drop_random_features(X, threshold=0.2)) # Ожидаемый результат: [2] — третий признак случайный
