Анализ данных (Data analysis)
Data science, наука о данных. @haarrp - админ РКН: clck.ru/3FmyAp
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام Анализ данных (Data analysis)
تُعد قناة Анализ данных (Data analysis) (@data_analysis_ml) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 50 179 مشتركاً، محتلاً المرتبة 2 677 في فئة التكنولوجيات والتطبيقات والمرتبة 12 565 في منطقة روسيا.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 50 179 مشتركاً.
بحسب آخر البيانات بتاريخ 15 يونيو, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -8، وفي آخر 24 ساعة بمقدار 25، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 8.82%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 5.98% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 4 427 مشاهدة. وخلال اليوم الأول يجمع عادةً 2 999 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 30.
- الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل llm, контекст, openai, архитектура, deepseek.
📝 الوصف وسياسة المحتوى
يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“Data science, наука о данных.
@haarrp - админ
РКН: clck.ru/3FmyAp”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 16 يونيو, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
DataFrame df:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'user_id': [1, 1, 2, 2, 3, 3],
'score': [100, 90, np.nan, 85, 75, 95]
})
Ты хочешь:
1) Для каждого пользователя найти средний score,
2) Заполнить пропущенные значения score средним по этому пользователю.
Ты пишешь код:
df['score_filled'] = df.groupby('user_id')['score'].apply(lambda x: x.fillna(x.mean()))
Ожидаешь, что пропущенное значение будет заменено на `85.0`.
Но вместо этого… возникает ошибка или неверный результат.
❓ Вопрос:
1) Почему этот код не работает как ты ожидаешь?
2) Какое поведение apply() вызывает подвох?
3) Как правильно решить задачу?
---
✅ Разбор:
💥 Проблема в `.apply()` + присваивание по индексу
Функция `groupby().apply()` возвращает **объединённый результат с вложенным индексом**, который **не совпадает с индексом исходного DataFrame**.
Пример:
```python
df.groupby('user_id')['score'].apply(lambda x: x.fillna(x.mean()))
```
→ возвращает Series с уровнем индекса: `(user_id, original_index)`,
а `df['score_filled'] = ...` ожидает индекс, совпадающий с `df.index`.
📌 Результат: pandas либо выбрасывает `ValueError`, либо вставляет неправильные значения.
✅ Правильные способы
Способ 1: использовать `transform` (индекс сохраняется!):
```python
df['score_filled'] = df['score'].fillna(
df.groupby('user_id')['score'].transform('mean')
)
```
Способ 2: в два шага:
```python
user_means = df.groupby('user_id')['score'].transform('mean')
df['score_filled'] = df['score']
df.loc[df['score'].isna(), 'score_filled'] = user_means
```
🎯 Так `NaN` будет корректно заполнен значением `85.0`.
⚠️ Подвох
• `groupby().apply()` не гарантирует совпадение индексов
• `transform()` — безопаснее, если хочешь сохранить структуру
• Даже опытные часто используют `apply` “по привычке” и попадают в ловушку
• Такие ошибки не всегда приводят к crash — они хуже: создают **тихие баги**
Хочешь сделать вторую часть , ставь 👍fast-agent — это современный фреймворк для быстрой разработки и тестирования интеллектуальных агентов и рабочих процессов, поддерживающих протокол MCP (Model-Context-Protocol). Он предоставляет простой декларативный синтаксис и мощные инструменты для построения многоагентных систем с поддержкой OpenAI, Anthropic и других моделей.
▪ Основные возможности
• Быстрое создание агентов с помощью декораторов @fast.agent, минимизируя количество кода.
• Поддержка рабочих процессов: цепочки (`chain`), параллельные вызовы (`parallel`), маршрутизаторы (`router`), оркестраторы (`orchestrator`), схемы с оценкой и оптимизацией (`evaluator_optimizer`).
• Мультимодальность: обработка изображений, PDF-файлов и интеграция с внешними ресурсами MCP.
• Интерактивная отладка: настройка и диагностика агентов до, во время и после выполнения рабочих процессов.
• Гибкая конфигурация через fastagent.config.yaml и fastagent.secrets.yaml.
• Интеграция с LLM: OpenAI (GPT-4 и др.), Anthropic (Haiku, Sonnet, Opus) и другие модели через MCP-серверы.
▪ Быстрый старт
1️⃣ Установите менеджер пакетов uv для Python.
2️⃣ Установите fast-agent:
uv pip install fast-agent-mcp
3️⃣ Создайте пример агента и конфигурационные файлы:
uv run fast-agent setup
4️⃣ Запустите агента:
uv run agent.py
5️⃣ Для запуска примеров рабочих процессов:
uv run fast-agent quickstart workflow
▪ Документация и примеры
• Официальный сайт: [fast-agent.ai](https://fast-agent.ai)
• Документация: [fast-agent-docs](https://github.com/evalstate/fast-agent-docs)
• Примеры: директория examples в репозитории.
▪ Сообщество и развитие
• Проект активно развивается, ⭐ 1.7k+ звёзд на GitHub.
• Обсуждения: [Discussions](https://github.com/evalstate/fast-agent/discussions)
• Последние релизы: [Releases](https://github.com/evalstate/fast-agent/releases)
▪ Видеообзор
[First Look at Fast-Agent (or Manus) – Coding an AI ...](https://www.youtube.com/watch?v=GaVQyYougPc&utm_source=chatgpt.com)
🔍 GitHubTDT - декодер, который предсказывает слова, звуки и их длительность. Вместо того чтобы проверять каждый кусочек аудиозаписи по порядку, TDT «перепрыгивает» через лишние сегменты, опираясь на прогноз времени, которое занимает текущий токен. Это сокращает вычисления, экономит время и при этом не теряется точность.
Fast Conformer — это переработанная архитектура Conformer, которая ускоряет распознавание речи за счет увеличения downsampling до 8x с помощью более легких сверток и упрощенных блоков, и замены стандартного внимания на комбинацию локального контекста и одного глобального токена.Обучение Parakeet проводилось в 2 этапа: сначала на 128 GPU A100 с использованием псевдоразмеченных данных, а затем — на 500 часах человеческой транскрипции. Часть обучающего датасета пока недоступна публично, их NVIDIA обещает открыть после конференции Interspeech 2025. Результаты на бенчмарке Open ASR впечатляют: средняя ошибка (WER) составляет всего 6.05% при greedy decoding без внешней языковой модели. Для сравнения, на чистом аудио из LibriSpeech WER составляет 1.69%, а сильном зашумлении (SNR 5) показатель не превышает 8.39%. В телефонии, где аудио сжимается через μ-law, потери в точности минимальны — всего 4.1%. По этим результатам, Parakeet-tdt-0.6b-v2 может стать универсальным инструментом для колл-центров или мобильных приложений. Модель поддерживает форматы
.wav и .flac с частотой 16 кГц и требует всего 2 ГБ оперативной памяти. Для интеграции разработчикам понадобится фреймворк NeMo от NVIDIA, он упрощает настройку под конкретные задачи.
📌Лицензирование: CC-BY-4.0 License.
🟡Модель
🟡Demo
@ai_machinelearning_big_data
#AI #ML #ASR #Parakeet #NVIDIAdf с данными о зарплатах сотрудников в компании:
import pandas as pd
data = {
'employee_id': range(1, 11),
'department': ['IT', 'IT', 'IT', 'HR', 'HR', 'Finance', 'Finance', 'Finance', 'Finance', 'Finance'],
'salary': [120000, 125000, None, 70000, None, 90000, None, 95000, None, 100000]
}
df = pd.DataFrame(data)
print(df)
Результат:
employee_id department salary
0 1 IT 120000.0
1 2 IT 125000.0
2 3 IT NaN
3 4 HR 70000.0
4 5 HR NaN
5 6 Finance 90000.0
6 7 Finance NaN
7 8 Finance 95000.0
8 9 Finance NaN
9 10 Finance 100000.0
👉 В задаче требуется:
> **Заполнить пропущенные зарплаты медианой по департаменту.
> Затем найти департамент с наибольшим средним уровнем зарплаты.**
Вы пишете такой код:
df['salary_filled'] = df.groupby('department')['salary'].transform(lambda x: x.fillna(x.median()))
top_department = df.groupby('department')['salary_filled'].mean().idxmax()
print(top_department)
❗️ Результат: "Finance"
Но через неделю выясняется, что HR утверждает:
> “Наш средний уровень зарплаты выше, чем в Finance!”
📝 Ваша задача:
1. Объяснить почему результат показывает Finance, хотя HR утверждает обратное?
2. Где ошибка в логике?
3. Как правильно посчитать среднюю зарплату, учитывая реальную ситуацию?
---
🎯 Подвох (ключевой момент):
Медиана по HR = 70000 (только одно известное значение).
Пропущенная зарплата в HR тоже заполняется 70000, т.е. обе записи будут 70000.
В Finance медиана = 95000 (из трёх известных: 90000, 95000, 100000).
Две пропущенные зарплаты в Finance тоже заполняются 95000.
✅ Но на самом деле в HR могли быть более высокие зарплаты, а мы по сути искусственно “усекли” распределение зарплат, заменив пропуски фиксированной медианой.
👉 Такая замена снижает дисперсию и искажает среднее, особенно если выборка мала.
---
💡 Правильный подход:
1. Вместо заполнения медианой, использовать **множественную имputation** (например, через `sklearn.impute.IterativeImputer`).
2. Либо **не заполнять NaN при вычислении среднего**, а использовать `mean(skipna=True)`, чтобы не “усекать” данные.
3. Либо **показать доверительный интервал** для среднего по каждой группе.
Пример альтернативного подхода:
```python
top_department = df.groupby('department')['salary'].mean().idxmax()
print(top_department)
```
✅ Таким образом NaN просто не участвуют в расчёте среднего, и мы не искажаем данные искусственным заполнением.
---
🔥 Усложнение (ещё один подвох):
А что если пропуски не случайны?
Например, все высокие зарплаты в HR отсутствуют, потому что сотрудники не раскрыли данные?
→ Тогда импутация медианой дополнительно “занижает” зарплаты HR, и классическая mean() даёт biased estimate.
В таком случае нужна модель пропусков (MAR, MCAR, MNAR) и специфические методы восстановления.
---
📝 Что проверяет задача:
✅ Понимание влияния методов заполнения пропусков
✅ Знание статистических эффектов усечения данных
✅ Умение интерпретировать результат с учётом bias
✅ Навык выбирать подходящий метод обработки пропусков в зависимости от их природы
pip install -U cocoindex
https://github.com/cocoindex-io/cocoindex
2. Настройте базу данных PostgreSQL с расширением pgvector.
3. Создайте файл quickstart.py и настройте пайплайн обработки данных.
4. Запустите пайплайн для обработки и индексации данных.
🟢 Github
@data_analysis_ml
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
