Data Science | Machinelearning [ru] – Telegram
Data Science | Machinelearning [ru]
20K subscribers
637 photos
40 videos
29 files
3.52K links
Все о Data Science, машинном обучении и искусственном интеллекте: от базовой теории до cutting-edge исследований и LLM.

По вопросам рекламы или разработки - @g_abashkin

РКН: https://vk.cc/cJPGXD
Download Telegram
🖥 Руководство по созданию приложения для поиска данных на основе агента GraphRAG

Статья описывает приложение, объединяющее GraphRAG и AutoGen-агентов с локальными LLM от Ollama для автономного встраивания и вывода. Рассмотрены ключевые аспекты: интеграция знаний, настройка LLM, вызов функций и интерактивный интерфейс.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
32
👩‍💻 Задачка по Python

Напишите Python-скрипт, который принимает путь к большому CSV-файлу и подсчитывает количество строк (записей) в файле без загрузки его целиком в память. Скрипт должен быть оптимизирован для работы с большими файлами.

➡️ Пример:

python count_rows.py large_file.csv
Количество строк: 3


Решение задачи ⬇️

import csv
import sys

def count_rows(file_path):
with open(file_path, 'r', encoding='utf-8') as file:
reader = csv.reader(file)
# Используем enumerate для подсчёта строк, исключая заголовок
row_count = sum(1 for _ in reader) - 1 # Минус 1 для исключения заголовка
return row_count

if __name__ == "__main__":
if len(sys.argv) < 2:
print("Использование: python count_rows.py <file_path>")
sys.exit(1)

file_path = sys.argv[1]
try:
result = count_rows(file_path)
print(f"Количество строк: {result}")
except Exception as e:
print(f"Ошибка: {e}")
Please open Telegram to view this post
VIEW IN TELEGRAM
👎4👍31
🖥 Как работает Трансформер: очень простое описание

Вот очень простое объяснение для тех, кто не хочет вдаваться в сложную математику, но и не готов принимать эту ключевую технологию как магию, которая просто работает. Конечно, никакого волшебства тут и нет — идея на самом деле довольно проста..

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
2
👩‍💻 Задачка по Python

Напишите функцию, которая принимает DataFrame и заменяет отсутствующие значения (NaN) в каждом числовом столбце на среднее значение этого столбца. Если столбец содержит только NaN, оставьте его без изменений.

➡️ Пример:

   feature1  feature2  feature3
0 1.0 10.0 NaN
1 2.0 NaN NaN
2 NaN 30.0 NaN
3 4.0 40.0 NaN

feature1 feature2 feature3
0 1.00 10.0 NaN
1 2.00 26.7 NaN
2 2.33 30.0 NaN
3 4.00 40.0 NaN


Решение задачи ⬇️

import pandas as pd

def fill_missing_with_mean(df):
numeric_columns = df.select_dtypes(include=['float', 'int'])
for column in numeric_columns:
if df[column].notna().any(): # Проверяем, есть ли значения не NaN
df[column] = df[column].fillna(df[column].mean())
return df

# Пример использования:
data = pd.DataFrame({
'feature1': [1.0, 2.0, None, 4.0],
'feature2': [10.0, None, 30.0, 40.0],
'feature3': [None, None, None, None]
})

result = fill_missing_with_mean(data)
print(result)
Please open Telegram to view this post
VIEW IN TELEGRAM
31😁1
⚙️ Неувядающая классика или «чёрный ящик»: кто кого в битве за прогноз. Глава вторая. Продолжение

Статья продолжает разбор моделирования температурного временного ряда с двойной сезонностью. Основное внимание уделено подбору оптимальных параметров сезонной модели САРПСС для точного описания данных.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
32
👩‍💻 FlexiPrompt: Удобное создание динамических промптов в Python

Статья знакомит с FlexiPrompt — лёгкой библиотекой для генерации промптов в Python при работе с языковыми моделями. Рассмотрены её преимущества: быстрая интеграция, гибкая настройка диалога и возможность создания нескольких агентов в одной LLM.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
32
👩‍💻 Чем отличается метод .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() удобно использовать для обработки данных с сохранением исходной структуры.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
51
🤔 Prompt Me One More Time. Учим LLM строить графы знаний из текстов

Статья описывает метод, разработанный для автоматического наполнения графов знаний с помощью LLM, что снижает вероятность «галлюцинаций» и повышает точность ответов. Решение Prompt Me One More Time подробно представлено на TextGraphs-17 конференции ACL-2024.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
41
➡️ Семантическая сегментация: самый полный гайд

Статья раскрывает, как семантическая сегментация помогает машинам «видеть», разбивая изображение на классы объектов. Обсуждаются её применение в автономных авто, медицине и обработке спутниковых снимков для точного распознавания контекста.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
32
👩‍💻 Задачка по Python

Напишите функцию, которая принимает список чисел и возвращает все значения, которые являются выбросами. Выбросы определяются как значения, которые находятся ниже первого квартиля (Q1) минус 1.5 * IQR или выше третьего квартиля (Q3) плюс 1.5 * IQR, где IQR — межквартильный размах.

➡️ Пример:

Входной список:
[10, 12, 14, 15, 15, 16, 16, 16, 17, 18, 19, 100]

Ожидаемый вывод:
[100]


Решение задачи ⬇️

import numpy as np

def find_outliers(data):
q1 = np.percentile(data, 25)
q3 = np.percentile(data, 75)
iqr = q3 - q1
lower_bound = q1 - 1.5 * iqr
upper_bound = q3 + 1.5 * iqr
return [x for x in data if x < lower_bound or x > upper_bound]

# Пример использования:
input_data = [10, 12, 14, 15, 15, 16, 16, 16, 17, 18, 19, 100]
result = find_outliers(input_data)
print(result) # Ожидаемый результат: [100]
Please open Telegram to view this post
VIEW IN TELEGRAM
53
🎤 Векторный поиск в YDB: семантический поиск в СУБД

В блоге Яндекса рассказали о запуске векторного поиска в СУБД YDB, полностью разработанная в России с такой функциональностью. Технология позволяет искать по смыслу, а не по ключевым словам: тексты, изображения, аудио и видео переводятся в эмбеддинги и индексируются в базе.

Реализация включает точный и приближенный режимы, подходит для RAG, ИИ-ассистентов и рекомендательных систем. Уже используется в «Алисе», теперь доступна и внешнему бизнесу — в облаке и on-premises.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👎2
🤔 3750 дней разработки AI или почему боты всё ещё не захватили покер

Статья рассматривает создание AI для покера (Техасского безлимитного холдема) и анализирует его сложность как модели бизнес-отношений. Обсуждаются метрики и стратегии, которые игроки используют в изменяющемся контексте для принятия решений.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
4
➡️ Matrix Reloaded: зачем дата-сайентисту линейная алгебра

Рассказываю, как векторы, матрицы и собственные значения помогают понимать ML-модели. Без теорем и нотаций — только визуалки и живые кейсы с работы.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
72
🤖 Как развернуть LLM с помощью vLLM и TorchServe

Хочешь запустить большую языковую модель в продакшене, но не знаешь, как совместить простоту развертывания с промышленной надежностью? Комбинация vLLM и TorchServe решает эту задачу. Она обеспечивает как простой запуск, так и продвинутые возможности для масштабирования.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
21🔥1
⚙️ Что такое декораторы в Python и как они работают?

Декораторы — это функции в Python, которые принимают другую функцию в качестве аргумента и возвращают новую функцию с добавленным поведением. Это удобный способ модификации или расширения функциональности без изменения исходного кода функции.

➡️ Пример:

# Декоратор для логирования вызовов функции
def log_call(func):
def wrapper(*args, **kwargs):
print(f"Вызов функции {func.__name__} с аргументами: {args}, {kwargs}")
result = func(*args, **kwargs)
print(f"Результат: {result}")
return result
return wrapper

# Применение декоратора
@log_call
def add(a, b):
return a + b

add(3, 5)


🗣️ В этом примере декоратор log_call добавляет логирование вызовов и результатов функции add. Декораторы позволяют делать код более модульным и удобным для повторного использования.


🖥 Подробнее тут
Please open Telegram to view this post
VIEW IN TELEGRAM
21
🤔 Прогнозирование продаж с использованием библиотеки Prophet

Статья посвящена прогнозированию продаж FTTB-FMC для ежедневной отчетности. Рассматриваются подходы к анализу данных, ключевые KPI и методы, используемые для прогнозирования продаж в сегменте ШПД и конвергентных продуктов.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
3
✔️ Big Data мертвы, да здравствуют Smart Data

Давайте рассмотрим концепцию Smart Data и выясним, действительно ли Big Data превращаются во что-то более интеллектуальное.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳41😁1
🔄 Архитектура — это не схема, а привычка

Ты можешь нарисовать идеальную схему слоёв и связей. Но если каждый в команде её игнорирует — она мертва.

👉 Совет: внедряй архитектуру через повседневные действия: шаблоны PR, линтеры, примеры. Пусть правильный подход становится нормой, а не лекцией. Настоящая архитектура — это то, что работает без напоминания.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥81