Disco
Disco
Encuentra patrones novedosos y estadísticamente validados en datos tabulares: interacciones de características, efectos de subgrupos y relaciones condicionales que el análisis de correlación y los LLM pasan por alto.
Creado por Leap Laboratories.
Qué hace realmente
La mayoría de los análisis de datos comienzan con una pregunta. Disco comienza con los datos.
Sin sesgos ni suposiciones, encuentra combinaciones de condiciones de características que alteran significativamente tu columna objetivo (cosas como "los pacientes de 45 a 65 años con HDL bajo y CRP alto tienen 3 veces la tasa de reingreso") sin que necesites formular esa interacción primero.
Cada patrón está:
Validado en un conjunto de prueba (hold-out): aumenta la probabilidad de generalización.
Corregido por FDR: incluye valores p, ajustados para pruebas múltiples.
Contrastado con la literatura académica: para ayudarte a entender lo que has encontrado e identificar si es novedoso.
El resultado está estructurado: condiciones, tamaños del efecto, valores p, citas y una clasificación de novedad para cada patrón encontrado.
Úsalo cuando: "qué variables son más importantes con respecto a X", "¿hay patrones que nos estamos perdiendo?", "no sé por dónde empezar con estos datos", "necesito entender cómo A y B afectan a C".
No para: estadísticas resumidas, visualización, filtrado, consultas SQL; usa pandas para eso.
Related MCP server: Data Analysis MCP Server
Inicio rápido
pip install discovery-engine-apiObtén una clave 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"}O crea una clave en disco.leap-labs.com/developers.
Ejecuta tu primer análisis:
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}")Las ejecuciones tardan unos minutos. discover() sondea automáticamente y registra el progreso: posición en la cola, espera estimada, paso actual del pipeline y tiempo estimado de llegada. Para ejecuciones en segundo plano, consulta Ejecución asíncrona.
→ Referencia completa del SDK de Python · Cuaderno de ejemplo
Qué obtienes a cambio
Cada Pattern en result.patterns se ve así (resultado real de un conjunto de datos de rendimiento de cultivos):
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,
)Aspectos clave a tener en cuenta:
Los patrones son combinaciones de condiciones: humedad Y velocidad del viento juntas, no solo "más humedad es mejor".
Umbrales específicos: 72–89%, no una correlación vaga.
Novedoso vs confirmatorio: cada patrón está clasificado; los confirmatorios validan la ciencia conocida, los novedosos son lo que buscabas.
Citas: muestra lo que SÍ se sabe, para que puedas ver qué es genuinamente nuevo.
report_urlenlaza a un informe web interactivo con todos los patrones visualizados.
El result.summary ofrece una descripción narrativa generada por 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.",
# ...]Cómo funciona
Disco es un pipeline, no ingeniería de prompts sobre datos. Hace lo siguiente:
Entrena modelos de aprendizaje automático en un subconjunto de tus datos.
Utiliza técnicas de interpretabilidad para extraer patrones aprendidos.
Valida cada patrón en los datos retenidos con corrección FDR (Benjamini-Hochberg).
Compara los patrones supervivientes con la literatura académica mediante búsqueda semántica.
No puedes replicar esto escribiendo código pandas o pidiendo a un LLM que mire un CSV. Encuentra estructuras que el análisis basado en hipótesis pasa por alto porque no comienza con hipótesis.
Preparación de tus datos
Antes de ejecutar, excluye las columnas que producirían hallazgos sin sentido. Disco encuentra patrones estadísticamente reales, pero si la entrada incluye columnas que están relacionadas por definición con el objetivo, los patrones serán tautológicos.
Excluye:
Identificadores: IDs de fila, UUIDs, IDs de paciente, códigos de muestra.
Fuga de datos: el objetivo renombrado o reformateado (p. ej.,
diagnosis_textcuando el objetivo esdiagnosis_code).Columnas tautológicas: codificaciones alternativas del mismo constructo que el objetivo. Si el objetivo es
serious, entoncesserious_outcome,not_serious,deathson todas parte de la misma clasificación. Si el objetivo esprofit, entoncesrevenueycostjuntos lo componen. Si el objetivo es un índice de encuesta, los subelementos son tautológicos.
Guía completa con ejemplos: SKILL.md
Parámetros
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
)Las ejecuciones públicas son gratuitas, pero los resultados se publican. Establece
visibility="private"para datos privados; esto cuesta créditos.
Ejecución asíncrona
Las ejecuciones tardan unos minutos. Para flujos de trabajo de agentes o scripts que realizan otras tareas en paralelo:
# 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)Para scripts síncronos y cuadernos Jupyter:
result = engine.run(file="data.csv", target_column="outcome", wait=True)
# or: pip install discovery-engine-api[jupyter] for notebook compatibilityServidor MCP
Disco está disponible como servidor MCP; no requiere instalación local.
{
"mcpServers": {
"discovery-engine": {
"url": "https://disco.leap-labs.com/mcp",
"env": { "DISCOVERY_API_KEY": "disco_..." }
}
}
}Herramientas: 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.
→ Archivo de habilidades del agente completo
Precios
Coste | |
Ejecuciones públicas | Gratis: los resultados y los datos se publican |
Ejecuciones privadas | Los créditos varían según el tamaño del archivo y la configuración: usa |
Nivel gratuito | 10 créditos/mes, no se requiere tarjeta |
Investigador | 49 $/mes: 50 créditos |
Equipo | 199 $/mes: 200 créditos |
Créditos | 0,10 $ por crédito |
Estima antes de ejecutar:
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/FalseLa gestión de la cuenta es totalmente programática: adjunta métodos de pago, suscríbete a planes y compra créditos a través del SDK o la API REST. Consulta la referencia del SDK de Python o SKILL.md.
Formato de datos esperado
Disco espera una tabla plana: columnas para características, filas para muestras.
| patient_id | age | bmi | smoker | outcome |
|------------|-----|------|--------|---------|
| 001 | 52 | 28.3 | yes | 1 |
| 002 | 34 | 22.1 | no | 0 |
| ... | ... | ... | ... | ... |Una fila por observación: un paciente, una muestra, una transacción, una medición, etc.
Una columna por característica: numérico, categórico, fecha/hora o texto libre, todo está bien.
Una columna objetivo: el resultado que quieres entender. Debe tener al menos 2 valores distintos.
Los valores faltantes están bien: Disco los maneja automáticamente. No elimines filas ni imputes de antemano.
No se necesita pivote: si tus datos ya están en una tabla plana, están listos para usar.
Formatos admitidos: CSV, TSV, Excel (.xlsx), JSON, Parquet, ARFF, Feather. Máximo 5 GB.
No admitidos: imágenes, documentos de texto sin formato, JSON anidado/jerárquico, Excel de varias hojas (usa la primera hoja o exporta a CSV).
Comparación con otras herramientas
Objetivo | Herramienta |
Estadísticas resumidas, calidad de datos | ydata-profiling, sweetviz |
Modelo predictivo | AutoML (auto-sklearn, TPOT, H2O) |
Correlaciones rápidas | pandas, seaborn |
Responder a una pregunta específica sobre datos | ChatGPT, Claude |
Encontrar lo que no sabes que debes buscar | Disco |
Disco no es un reemplazo para EDA o AutoML; encuentra los patrones que esas herramientas pasan por alto. Probamos 18 herramientas de análisis de datos en un conjunto de datos con patrones de verdad fundamental conocidos. La mayoría informó resultados incorrectos con confianza. Disco fue el único que encontró todos los patrones.
Enlaces
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