Data Science | Machinelearning [ru]
Все о Data Science, машинном обучении и искусственном интеллекте: от базовой теории до cutting-edge исследований и LLM. Личный блог автора - @just_genych По вопросам рекламы или разработки - @g_abashkin РКН: https://vk.cc/cJPGXD
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام Data Science | Machinelearning [ru]
تُعد قناة Data Science | Machinelearning [ru] (@devsp) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 20 058 مشتركاً، محتلاً المرتبة 6 732 في فئة التكنولوجيات والتطبيقات والمرتبة 33 731 في منطقة روسيا.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 20 058 مشتركاً.
بحسب آخر البيانات بتاريخ 12 يونيو, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -35، وفي آخر 24 ساعة بمقدار -4، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 7.60%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 4.48% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 1 526 مشاهدة. وخلال اليوم الأول يجمع عادةً 899 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 7.
- الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل llm, nvidia, контекст, openai, архитектура.
📝 الوصف وسياسة المحتوى
يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“Все о Data Science, машинном обучении и искусственном интеллекте: от базовой теории до cutting-edge исследований и LLM.
Личный блог автора - @just_genych
По вопросам рекламы или разработки - @g_abashkin
РКН: https://vk.cc/cJPGXD”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 13 يونيو, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
yield, вместо полного возврата всех значений сразу. Они полезны для работы с большими объемами данных, так как сохраняют память, генерируя значения на лету.
➡️ Пример:
# Генератор для получения первых N чисел Фибоначчи
def fibonacci(n):
a, b = 0, 1
for _ in range(n):
yield a
a, b = b, a + b
# Используем генератор
for num in fibonacci(5):
print(num)
# Вывод: 0, 1, 1, 2, 3
🗣️ В этом примере генератор fibonacci вычисляет числа по запросу, вместо сохранения всех значений в памяти. Это делает генераторы особенно удобными для работы с потоками данных или бесконечными последовательностями.🖥 Подробнее тут
detect_outlier(data: List[List[float]], labels: List[str]) -> int, которая возвращает индекс выброса в списке. Гарантируется, что в labels один лейбл может быть "unknown", а может и вовсе отсутствовать — выброс может быть замаскирован.
Метрика — средняя евклидова дистанция до других представителей того же класса должна быть на порядок выше, чем у нормальных объектов.
Пример данных:
data = [ [1.1, 0.9], [1.2, 1.0], [0.9, 1.1], # cat [3.0, 3.1], [2.9, 3.0], [3.1, 2.9], # dog [5.0, 5.1], [5.1, 5.0], [8.0, 8.0], # last — выброс ] labels = ["cat", "cat", "cat", "dog", "dog", "dog", "bird", "bird", "bird"]Решение задачи🔽
import numpy as np from collections import defaultdict def detect_outlier(data, labels): data = np.array(data) grouped = defaultdict(list) for i, label in enumerate(labels): grouped[label].append(i) outlier_idx = -1 max_score = -1 for i, point in enumerate(data): label = labels[i] others = [j for j in grouped[label] if j != i] if not others: continue distances = [np.linalg.norm(point - data[j]) for j in others] avg_dist = np.mean(distances) if avg_dist > max_score: max_score = avg_dist outlier_idx = i return outlier_idx # Тест print(detect_outlier(data, labels)) # ➜ 8
.transform() от .apply() в pandas?
В pandas методы .transform() и .apply() часто используются для обработки данных по столбцам и строкам, но они работают по-разному. Метод .apply() применяет функцию к каждому элементу или ряду, и возвращает объект любой формы (например, DataFrame или Series). В отличие от него, .transform() применяет функцию к каждой ячейке или группе и возвращает объект той же формы, что и входной.
➡️ Пример:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [10, 20, 30]})
# Используем .apply() для вычисления суммы по столбцам
print(df.apply(sum)) # Вернет Series с суммами столбцов
# Используем .transform() для нормализации каждого значения в столбце
print(df.transform(lambda x: (x - x.mean()) / x.std()))
# Вернет DataFrame с нормализованными значениями
🗣 .apply() подходит для сложных операций и агрегаций, а .transform() удобно использовать для обработки данных с сохранением исходной структуры.🖥 Подробнее тут
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}")
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
