Disco
Disco
Находите новые, статистически подтвержденные закономерности в табличных данных — взаимодействия признаков, эффекты подгрупп и условные зависимости, которые пропускают корреляционный анализ и LLM.
Создано Leap Laboratories.
Что это делает на самом деле
Большинство видов анализа данных начинаются с вопроса. Disco начинается с данных.
Без предвзятости или предположений он находит комбинации условий признаков, которые существенно влияют на ваш целевой столбец — например, «пациенты в возрасте 45–65 лет с низким уровнем ЛПВП и высоким уровнем СРБ имеют в 3 раза более высокий уровень повторной госпитализации» — без необходимости выдвигать гипотезу об этом взаимодействии заранее.
Каждая закономерность:
Проверена на отложенной выборке — повышает вероятность обобщения
Скорректирована по FDR — p-значения включены, скорректированы с учетом множественного тестирования
Сверена с академической литературой — чтобы помочь вам понять, что вы нашли, и определить, является ли это новым.
Результат структурирован: условия, размеры эффектов, p-значения, цитаты и классификация новизны для каждой найденной закономерности.
Используйте, когда: «какие переменные наиболее важны по отношению к X», «есть ли закономерности, которые мы упускаем?», «я не знаю, с чего начать работу с этими данными», «мне нужно понять, как A и B влияют на C».
Не для: описательной статистики, визуализации, фильтрации, SQL-запросов — используйте для этого pandas.
Related MCP server: Data Analysis MCP Server
Быстрый старт
pip install discovery-engine-apiПолучите API-ключ:
# Step 1: request verification code (no password, no card)
curl -X POST https://disco.leap-labs.com/api/signup \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com"}'
# Step 2: submit code from email → get key
curl -X POST https://disco.leap-labs.com/api/signup/verify \
-H "Content-Type: application/json" \
-d '{"email": "you@example.com", "code": "123456"}'
# → {"key": "disco_...", "credits": 10, "tier": "free_tier"}Или создайте ключ на disco.leap-labs.com/developers.
Запустите свой первый анализ:
from discovery import Engine
engine = Engine(api_key="disco_...")
result = await engine.discover(
file="data.csv",
target_column="outcome",
)
for pattern in result.patterns:
if pattern.p_value < 0.05 and pattern.novelty_type == "novel":
print(f"{pattern.description} (p={pattern.p_value:.4f})")
print(f"Explore: {result.report_url}")Запуск занимает несколько минут. discover() автоматически опрашивает состояние и регистрирует прогресс — позицию в очереди, расчетное время ожидания, текущий этап конвейера и ETA. Для фоновых запусков см. Запуск в асинхронном режиме.
→ Полная справка по Python SDK · Пример блокнота
Что вы получаете в итоге
Каждый Pattern в result.patterns выглядит так (реальный результат из набора данных об урожайности):
Pattern(
description="When humidity is between 72–89% AND wind speed is below 12 km/h, "
"crop yield increases by 34% above the dataset average",
conditions=[
{"type": "continuous", "feature": "humidity_pct",
"min_value": 72.0, "max_value": 89.0},
{"type": "continuous", "feature": "wind_speed_kmh",
"min_value": 0.0, "max_value": 12.0},
],
p_value=0.003, # FDR-corrected
novelty_type="novel",
novelty_explanation="Published studies examine humidity and wind speed as independent "
"predictors, but this interaction effect — where low wind amplifies "
"the benefit of high humidity within a specific range — has not been "
"reported in the literature.",
citations=[
{"title": "Effects of relative humidity on cereal crop productivity",
"authors": ["Zhang, L.", "Wang, H."], "year": "2021",
"journal": "Journal of Agricultural Science"},
],
target_change_direction="max",
abs_target_change=0.34, # 34% increase
support_count=847, # rows matching this pattern
support_percentage=16.9,
)Ключевые моменты, на которые стоит обратить внимание:
Закономерности — это комбинации условий — влажность И скорость ветра вместе, а не просто «больше влажности — лучше»
Конкретные пороговые значения — 72–89%, а не расплывчатая корреляция
Новое против подтверждающего — каждая закономерность классифицируется; подтверждающие проверяют известную науку, новые — это то, ради чего вы пришли
Цитаты — показывают, ЧТО уже известно, чтобы вы могли увидеть, что является действительно новым
report_urlведет на интерактивный веб-отчет со всеми визуализированными закономерностями
result.summary дает описательный обзор, сгенерированный LLM:
result.summary.overview
# "Disco identified 14 statistically significant patterns. 5 are novel.
# The strongest driver is a previously unreported interaction between humidity
# and wind speed at specific thresholds."
result.summary.key_insights
# ["Humidity × low wind speed at 72–89% humidity produces a 34% yield increase — novel.",
# "Soil nitrogen above 45 mg/kg shows diminishing returns when phosphorus is below 12 mg/kg.",
# ...]Как это работает
Disco — это конвейер, а не промпт-инжиниринг поверх данных. Он:
Обучает модели машинного обучения на подмножестве ваших данных
Использует методы интерпретируемости для извлечения изученных закономерностей
Проверяет каждую закономерность на отложенных данных с коррекцией FDR (Бенджамини-Хохберга)
Сверяет сохранившиеся закономерности с академической литературой через семантический поиск
Вы не сможете воспроизвести это, написав код на pandas или попросив LLM посмотреть на CSV. Он находит структуру, которую пропускает анализ, основанный на гипотезах, потому что он не начинается с гипотез.
Подготовка данных
Перед запуском исключите столбцы, которые могут привести к бессмысленным результатам. Disco находит статистически реальные закономерности, но если входные данные включают столбцы, которые по определению связаны с целью, закономерности будут тавтологическими.
Исключите:
Идентификаторы — ID строк, UUID, ID пациентов, коды образцов
Утечка данных — цель, переименованная или переформатированная (например,
diagnosis_text, когда цель —diagnosis_code)Тавтологические столбцы — альтернативные кодировки той же конструкции, что и цель. Если цель —
serious, тоserious_outcome,not_serious,death— все это части одной классификации. Если цель —profit, тоrevenueиcostвместе составляют ее. Если цель — индекс опроса, подпункты являются тавтологическими.
Полное руководство с примерами: SKILL.md
Параметры
await engine.discover(
file="data.csv", # path, Path, or pd.DataFrame
target_column="outcome", # column to predict/explain
analysis_depth=2, # 2=default, higher=deeper analysis, lower = faster and cheaper
visibility="public", # "public" (always free, data and report is published) or "private" (costs credits)
column_descriptions={ # improves pattern explanations and literature context
"bmi": "Body mass index",
"hdl": "HDL cholesterol in mg/dL",
},
excluded_columns=["id", "timestamp"], # see "Preparing your data" above
use_llms=False, # Defaults to False. If True, runs are slower and more expensive, but you get smarter pre-processing, summary page, literature context and novelty assessment. Public runs always use LLMs.
title="My dataset",
description="...", # improves pattern explanations and literature context
)Публичные запуски бесплатны, но результаты публикуются. Установите
visibility="private"для приватных данных — это стоит кредитов.
Запуск в асинхронном режиме
Запуск занимает несколько минут. Для рабочих процессов агентов или скриптов, выполняющих другую работу параллельно:
# Submit without waiting
run = await engine.run_async(file="data.csv", target_column="outcome", wait=False)
print(f"Submitted {run.run_id}, continuing...")
# ... do other things ...
result = await engine.wait_for_completion(run.run_id, timeout=1800)Для синхронных скриптов и Jupyter-блокнотов:
result = engine.run(file="data.csv", target_column="outcome", wait=True)
# or: pip install discovery-engine-api[jupyter] for notebook compatibilityMCP-сервер
Disco доступен как MCP-сервер — локальная установка не требуется.
{
"mcpServers": {
"discovery-engine": {
"url": "https://disco.leap-labs.com/mcp",
"env": { "DISCOVERY_API_KEY": "disco_..." }
}
}
}Инструменты: discovery_list_plans, discovery_estimate, discovery_upload, discovery_analyze, discovery_status, discovery_get_results, discovery_account, discovery_signup, discovery_signup_verify, discovery_login, discovery_login_verify, discovery_add_payment_method, discovery_subscribe, discovery_purchase_credits.
Цены
Стоимость | |
Публичные запуски | Бесплатно — результаты и данные публикуются |
Приватные запуски | Кредиты зависят от размера файла и конфигурации — используйте |
Бесплатный уровень | 10 кредитов/месяц, карта не требуется |
Исследователь | $49/месяц — 50 кредитов |
Команда | $199/месяц — 200 кредитов |
Кредиты | $0.10 за кредит |
Оцените стоимость перед запуском:
estimate = await engine.estimate(file_size_mb=10.5, num_columns=25, analysis_depth=2, visibility="private")
# estimate["cost"]["credits"] → 55
# estimate["account"]["sufficient"] → True/FalseУправление учетной записью полностью программное — привязывайте способы оплаты, подписывайтесь на планы и покупайте кредиты через SDK или REST API. См. Справку по Python SDK или SKILL.md.
Ожидаемый формат данных
Disco ожидает плоскую таблицу — столбцы для признаков, строки для образцов.
| patient_id | age | bmi | smoker | outcome |
|------------|-----|------|--------|---------|
| 001 | 52 | 28.3 | yes | 1 |
| 002 | 34 | 22.1 | no | 0 |
| ... | ... | ... | ... | ... |Одна строка на наблюдение — пациент, образец, транзакция, измерение и т. д.
Один столбец на признак — числовые, категориальные, даты или свободный текст — все подходит
Один целевой столбец — результат, который вы хотите понять. Должен иметь как минимум 2 различных значения.
Пропущенные значения — это нормально — Disco обрабатывает их автоматически. Не удаляйте строки и не заполняйте их заранее.
Сведение (pivoting) не требуется — если ваши данные уже в плоской таблице, они готовы к работе
Поддерживаемые форматы: CSV, TSV, Excel (.xlsx), JSON, Parquet, ARFF, Feather. Максимум 5 ГБ.
Не поддерживается: изображения, необработанные текстовые документы, вложенный/иерархический JSON, Excel с несколькими листами (используйте первый лист или экспортируйте в CSV)
Сравнение с другими инструментами
Цель | Инструмент |
Описательная статистика, качество данных | ydata-profiling, sweetviz |
Прогностическая модель | AutoML (auto-sklearn, TPOT, H2O) |
Быстрые корреляции | pandas, seaborn |
Ответ на конкретный вопрос о данных | ChatGPT, Claude |
Найти то, что вы не знаете, как искать | Disco |
Disco — это не замена EDA или AutoML, он находит закономерности, которые эти инструменты пропускают. Мы протестировали 18 инструментов анализа данных на наборе данных с известными закономерностями. Большинство уверенно сообщали неверные результаты. Disco был единственным, кто нашел каждую закономерность.
Ссылки
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/leap-laboratories/discovery-engine'
If you have feedback or need assistance with the MCP directory API, please join our Discord server