Disco
Disco
표 형식 데이터에서 통계적으로 검증된 새로운 패턴을 찾으세요 — 상관관계 분석이나 LLM이 놓치는 특성 상호작용, 하위 그룹 효과 및 조건부 관계를 찾아냅니다.
실제 기능
대부분의 데이터 분석은 질문에서 시작하지만, Disco는 데이터에서 시작합니다.
편향이나 가정 없이, 대상 열을 유의미하게 변화시키는 특성 조건의 조합을 찾아냅니다. 예를 들어, "HDL이 낮고 CRP가 높은 45~65세 환자는 재입원율이 3배 높다"와 같은 결과를 해당 상호작용을 가설로 세우지 않아도 찾아냅니다.
각 패턴은 다음과 같은 특징을 가집니다:
홀드아웃 세트에서 검증됨 — 일반화 가능성을 높입니다.
FDR 보정됨 — 다중 검정을 위해 조정된 p-값이 포함됩니다.
학술 문헌과 대조 확인 — 발견한 내용을 이해하고 새로운 것인지 식별하도록 돕습니다.
출력은 조건, 효과 크기, p-값, 인용문 및 발견된 모든 패턴에 대한 참신성 분류로 구조화되어 있습니다.
사용 시기: "X와 관련하여 가장 중요한 변수는 무엇인가?", "우리가 놓치고 있는 패턴이 있는가?", "이 데이터로 어디서부터 시작해야 할지 모르겠다", "A와 B가 C에 어떤 영향을 미치는지 이해해야 한다".
사용 불가: 요약 통계, 시각화, 필터링, SQL 쿼리 — 이러한 작업에는 pandas를 사용하세요.
Related MCP server: Data Analysis MCP Server
빠른 시작
pip install discovery-engine-apiAPI 키 받기:
# 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()는 자동으로 폴링하며 진행 상황(대기열 위치, 예상 대기 시간, 현재 파이프라인 단계 및 완료 예정 시간)을 기록합니다. 백그라운드 실행은 비동기 실행을 참조하세요.
결과 확인
result.patterns의 각 Pattern은 다음과 같이 보입니다(작물 수확량 데이터 세트의 실제 출력):
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,
)주요 확인 사항:
패턴은 조건의 조합입니다 — 단순히 "습도가 높을수록 좋다"가 아니라 습도 AND 풍속의 조합입니다.
구체적인 임계값 — 모호한 상관관계가 아닌 72~89%와 같은 수치입니다.
참신함 vs 확인적 — 모든 패턴은 분류됩니다. 확인적 패턴은 알려진 과학을 검증하고, 참신한 패턴은 당신이 찾던 결과입니다.
인용문 — 무엇이 알려져 있는지 보여주어 무엇이 진정으로 새로운 것인지 확인할 수 있습니다.
**
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 보정(Benjamini-Hochberg)을 통해 홀드아웃 데이터에서 모든 패턴을 검증합니다.
의미론적 검색을 통해 학술 문헌과 대조하여 살아남은 패턴을 확인합니다.
pandas 코드를 작성하거나 LLM에게 CSV를 보라고 요청하는 것으로는 이를 복제할 수 없습니다. 가설 기반 분석은 가설에서 시작하지 않기 때문에 놓치는 구조를 찾아냅니다.
데이터 준비
실행하기 전에 의미 없는 결과를 생성할 열을 제외하세요. Disco는 통계적으로 실제적인 패턴을 찾지만, 입력 데이터에 대상과 정의상 관련된 열이 포함되어 있으면 패턴은 동어반복이 됩니다.
제외할 항목:
식별자 — 행 ID, UUID, 환자 ID, 샘플 코드
데이터 누수 — 이름이 변경되거나 형식이 변경된 대상(예: 대상이
diagnosis_code일 때diagnosis_text)동어반복 열 — 대상과 동일한 구성의 대체 인코딩. 대상이
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가 자동으로 처리합니다. 미리 행을 삭제하거나 대치하지 마세요.
피벗 불필요 — 데이터가 이미 플랫 테이블 형식이라면 바로 사용할 수 있습니다.
지원 형식: CSV, TSV, Excel (.xlsx), JSON, Parquet, ARFF, Feather. 최대 5GB.
지원되지 않음: 이미지, 원시 텍스트 문서, 중첩/계층적 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