Data Science | Machinelearning [ru]
Все о Data Science, машинном обучении и искусственном интеллекте: от базовой теории до cutting-edge исследований и LLM. Личный блог автора - @just_genych По вопросам рекламы или разработки - @g_abashkin РКН: https://vk.cc/cJPGXD
Больше📈 Аналитический обзор Telegram-канала Data Science | Machinelearning [ru]
Канал Data Science | Machinelearning [ru] (@devsp) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 20 047 подписчиков, занимая 6 729 место в категории Технологии и приложения и 33 727 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 20 047 подписчиков.
Согласно последним данным от 13 июня, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -68, а за последние 24 часа — -19, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 7.54%. В первые 24 часа после публикации контент обычно набирает 4.58% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 1 513 просмотров. В течение первых суток публикация набирает 919 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 7.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как llm, nvidia, контекст, openai, архитектура.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“Все о Data Science, машинном обучении и искусственном интеллекте: от базовой теории до cutting-edge исследований и LLM.
Личный блог автора - @just_genych
По вопросам рекламы или разработки - @g_abashkin
РКН: https://vk.cc/cJPGXD”
Благодаря высокой частоте обновлений (последние данные получены 14 июня, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
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] — третий признак случайный
import numpy as np
from sklearn.decomposition import PCA
from sklearn.datasets import load_iris
# Загрузка данных
data = load_iris()
X = data.data
# Применение PCA для снижения размерности до 2 компонент
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)
print(X_pca[:5]) # Преобразованные данные
🗣️ В этом примере PCA снижает размерность данных Iris с 4 до 2 компонент. Это позволяет визуализировать данные и ускорить работу моделей, сохраняя основную информацию.🖥 Подробнее тут
y (список из 0 и 1) и числовой признак x (такой же длины). Нужно реализовать функцию best_split(x, y), которая найдёт такое значение признака, при разделении по которому (меньше/больше) будет максимально уменьшена энтропия классов.
Иными словами, нужно найти лучший threshold, при котором данные делятся на две группы по x, и у этих групп наименьшая средняя энтропия. Это базовая операция в построении деревьев решений, например, в алгоритме ID3.
Цель:
Вернуть threshold, который даёт наилучшее (наименьшее) значение средневзвешенной энтропии.Решение задачи🔽
import numpy as np def entropy(labels): if len(labels) == 0: return 0 p = np.bincount(labels) / len(labels) return -np.sum([pi * np.log2(pi) for pi in p if pi > 0]) def best_split(x, y): x = np.array(x) y = np.array(y) thresholds = sorted(set(x)) best_entropy = float('inf') best_thresh = None for t in thresholds: left_mask = x <= t right_mask = x > t left_entropy = entropy(y[left_mask]) right_entropy = entropy(y[right_mask]) w_left = np.sum(left_mask) / len(x) w_right = 1 - w_left avg_entropy = w_left * left_entropy + w_right * right_entropy if avg_entropy < best_entropy: best_entropy = avg_entropy best_thresh = t return best_thresh # Пример использования x = [2, 4, 6, 8, 10, 12] y = [0, 0, 1, 1, 1, 1] print(best_split(x, y)) # Ожидаемый результат: значение между 4 и 6 (например, 6), так как оно лучше всего делит классы
text = "Hello, world! Hello Python world."
result = count_words(text)
print(result)
# Ожидаемый результат: {'hello': 2, 'world': 2, 'python': 1}
Решение задачи🔽
import re from collections import Counter def count_words(text): # Убираем знаки препинания и приводим к нижнему регистру words = re.findall(r'\b\w+\b', text.lower()) # Подсчитываем количество вхождений каждого слова return Counter(words) # Пример использования: text = "Hello, world! Hello Python world." result = count_words(text) print(result) # Ожидаемый результат: {'hello': 2, 'world': 2, 'python': 1}
# Содержимое файла example.txt:
# "Hello, world! This is a test. Hello again."
result = count_words_in_file("example.txt")
print(result)
# Ожидаемый результат:
# {'hello': 2, 'world': 1, 'this': 1, 'is': 1, 'a': 1, 'test': 1, 'again': 1}
Решение задачи🔽
import string from collections import Counter def count_words_in_file(file_path): with open(file_path, 'r', encoding='utf-8') as f: text = f.read().lower() text = text.translate(str.maketrans('', '', string.punctuation)) words = text.split() return dict(Counter(words)) # Пример использования result = count_words_in_file("example.txt") print(result)
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
