Data Science | Machinelearning [ru]
17.9K subscribers
461 photos
15 videos
29 files
3.34K links
Статьи на тему data science, machine learning, big data, python, математика, нейронные сети, искусственный интеллект (artificial intelligence)

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

РКН: https://vk.cc/cJPGXD
Download Telegram
🧬 Почини одну переменную — и система станет проще

Ты борешься с непонятной логикой, огромными условиями, крошечными багообразными эффектами. Всё сложно.

👉 Совет: не паникуй. Найди одну переменную, одно имя, один формат, который вносит больше всего путаницы — и перепиши его. Часто даже одно улучшение приводит к лавине упрощений. Разбор сложности начинается с одной точки.
Please open Telegram to view this post
VIEW IN TELEGRAM
5
➡️ Путь разметки данных для NER: от Open Source до Prodigy

Статья посвящена созданию обучающей выборки для NER. Описан опыт разметки данных с использованием Open Source инструментов и Prodigy, профессионального решения для ускорения процесса создания наборов данных.

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
11
🖥 Руководство по созданию приложения для поиска данных на основе агента GraphRAG

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
31
👩‍💻 Задачка по 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
1
👩‍💻 Задачка по 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
22
👩‍💻 FlexiPrompt: Удобное создание динамических промптов в Python

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
31
👩‍💻 Чем отличается метод .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
31
➡️ Семантическая сегментация: самый полный гайд

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
22
👩‍💻 Задачка по 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
👎2🔥2
🤔 3750 дней разработки AI или почему боты всё ещё не захватили покер

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

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

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

Читать...
Please open Telegram to view this post
VIEW IN TELEGRAM
61
🤖 Как развернуть 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