Spaces:
Running
Running
LEADBOARD v1.1 - spec, opening boards, measured baselines
Browse files8-clause spec, 5 time-split boards with measured noise floors and mandated baselines.
- Dockerfile +12 -0
- README.md +20 -5
- app.py +85 -0
- data/egfr_card.json +39 -0
- data/her2_card.json +39 -0
- data/herg_card.json +39 -0
- data/kit_card.json +39 -0
- data/vegfr2_card.json +39 -0
- index.html +215 -0
- requirements.txt +3 -0
Dockerfile
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# HF Spaces runs the container as a non-root user; write only under paths we own.
|
| 2 |
+
FROM python:3.11-slim
|
| 3 |
+
RUN useradd -m -u 1000 user
|
| 4 |
+
WORKDIR /app
|
| 5 |
+
COPY requirements.txt .
|
| 6 |
+
RUN pip install --no-cache-dir -r requirements.txt
|
| 7 |
+
COPY . .
|
| 8 |
+
RUN mkdir -p /app/data && chown -R user:user /app
|
| 9 |
+
USER user
|
| 10 |
+
ENV LB_LEDGER=/app/data/ledger.jsonl
|
| 11 |
+
EXPOSE 7860
|
| 12 |
+
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]
|
README.md
CHANGED
|
@@ -1,10 +1,25 @@
|
|
| 1 |
---
|
| 2 |
-
title:
|
| 3 |
-
emoji:
|
| 4 |
-
colorFrom:
|
| 5 |
-
colorTo:
|
| 6 |
sdk: docker
|
|
|
|
| 7 |
pinned: false
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
---
|
| 9 |
|
| 10 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
+
title: LEADBOARD
|
| 3 |
+
emoji: ๐ฏ
|
| 4 |
+
colorFrom: blue
|
| 5 |
+
colorTo: gray
|
| 6 |
sdk: docker
|
| 7 |
+
app_port: 7860
|
| 8 |
pinned: false
|
| 9 |
+
short_description: One yardstick for drug prediction tools
|
| 10 |
+
tags:
|
| 11 |
+
- drug-discovery
|
| 12 |
+
- admet
|
| 13 |
+
- leaderboard
|
| 14 |
+
- benchmark
|
| 15 |
+
- cheminformatics
|
| 16 |
---
|
| 17 |
|
| 18 |
+
# LEADBOARD
|
| 19 |
+
|
| 20 |
+
์ ์ฝ ์์ธก ๋๊ตฌ๋ฅผ, ๋ถ์ผ๋ณ๋ก, ๊ฐ์ ์ฃ๋๋ก ์ฐ๋ค.
|
| 21 |
+
|
| 22 |
+
์ ๋ต์ ๋ฐฐํฌํ์ง ์๋๋ค. ๋์ ์ฑ์ ์๊ฐ ๋จผ์ ๊ณต๊ฐํ๋ค โ
|
| 23 |
+
์๋ฌด๊ฒ๋ ํ์ตํ์ง ์์ ๊ธฐ์ค์ , ๊ทธ ๋ถ์ผ์ ์คํ ์ก์ ๋ฐ๋ฅ, ์ ์๋ง๋ค์ ๋ฐ์ดํฐยท์ฑ์ ๊ธฐ ์ง๋ฌธ.
|
| 24 |
+
|
| 25 |
+
๊ท๊ฒฉ v1.1 (8๊ฐ ์กฐํญ) ยท FINAL-Bench / VIDRAFT
|
app.py
ADDED
|
@@ -0,0 +1,85 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# -*- coding: utf-8 -*-
|
| 2 |
+
"""LEADBOARD โ ์ ์ฝ ์์ธก ๋๊ตฌ๋ฅผ ๋ถ์ผ๋ณ๋ก ๊ฐ์ ์ฃ๋์ ์ธ์ฐ๋ ์ํ๋.
|
| 3 |
+
|
| 4 |
+
**์ด ์๋น์ค๊ฐ ํ๋ ์ผ**: ๋ถ๋ฌธ ์นด๋๋ฅผ ์๋นํ๊ณ , ์ ์ถ์ ๋ฐ์ ์์ฅ์ ์ ๋๋ค.
|
| 5 |
+
**ํ์ง ์๋ ์ผ**: ์ฑ์ . ์ ๋ต์ ์ด ์ปจํ
์ด๋์ ์๋ค (๊ท๊ฒฉ 1์กฐ).
|
| 6 |
+
์ฑ์ ์ ๋ณ๋ ์์ปค๊ฐ ๋น๊ณต๊ฐ ์์ฅ์์ ๋๋ฆฐ๋ค. ์ฌ๊ธฐ์ ๋ผ๋ฒจ์ ๋๋ฉด
|
| 7 |
+
์ปจํ
์ด๋ ์ด๋ฏธ์ง๋ฅผ ๋ฐ๋ ๋๊ตฌ๋ ์ ๋ต์ ๊ฐ๊ฒ ๋๋ค.
|
| 8 |
+
|
| 9 |
+
๋ถ๋ฌธ ์นด๋์๋ ์ฑ์ ์ ํ์ํ ๋ชจ๋ ๊ณต๊ฐ ์ ๋ณด๊ฐ ๋ค์ด ์๋ค - ์ก์ ๋ฐ๋ฅ, ๊ธฐ์ค์ ์ฑ์ ,
|
| 10 |
+
ํ๋์์ ๋ฐฉ์, ๋ฐ์ดํฐ ์ง๋ฌธ. **์ฐธ๊ฐ์๊ฐ ์ฐ๋ฆฌ ์ฑ์ ์ ๊ฒ์ฆํ ์ ์๊ฒ ํ๋ ๊ฒ์ด ๋ชฉ์ ์ด๋ค.**
|
| 11 |
+
"""
|
| 12 |
+
import glob
|
| 13 |
+
import hashlib
|
| 14 |
+
import io
|
| 15 |
+
import json
|
| 16 |
+
import os
|
| 17 |
+
import time
|
| 18 |
+
|
| 19 |
+
from fastapi import FastAPI
|
| 20 |
+
from fastapi.middleware.gzip import GZipMiddleware
|
| 21 |
+
from fastapi.responses import FileResponse, JSONResponse
|
| 22 |
+
|
| 23 |
+
HERE = os.path.dirname(os.path.abspath(__file__))
|
| 24 |
+
DATA = os.path.join(HERE, "data")
|
| 25 |
+
SPEC_VERSION = "v1.1"
|
| 26 |
+
|
| 27 |
+
app = FastAPI(title="LEADBOARD")
|
| 28 |
+
app.add_middleware(GZipMiddleware, minimum_size=1024)
|
| 29 |
+
|
| 30 |
+
_CACHE = {"t": 0, "v": None}
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
def _sha(path):
|
| 34 |
+
h = hashlib.sha256()
|
| 35 |
+
with open(path, "rb") as f:
|
| 36 |
+
for b in iter(lambda: f.read(65536), b""):
|
| 37 |
+
h.update(b)
|
| 38 |
+
return h.hexdigest()[:16]
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
def boards():
|
| 42 |
+
"""๋ถ๋ฌธ ์นด๋๋ฅผ ๋ชจ์ ์ค๋ค. 2์กฐ์ ๋ฐ๋ผ ๊ฐ ์นด๋์ ์ง๋ฌธ์ ํจ๊ป ๋ธ๋ค."""
|
| 43 |
+
if _CACHE["v"] and time.time() - _CACHE["t"] < 60:
|
| 44 |
+
return _CACHE["v"]
|
| 45 |
+
out = []
|
| 46 |
+
for p in sorted(glob.glob(os.path.join(DATA, "*_card.json"))):
|
| 47 |
+
try:
|
| 48 |
+
d = json.load(io.open(p, encoding="utf-8"))
|
| 49 |
+
except Exception:
|
| 50 |
+
continue
|
| 51 |
+
nf = d.get("noise_floor") or {}
|
| 52 |
+
base = d.get("baselines") or {}
|
| 53 |
+
best = None
|
| 54 |
+
for k, v in base.items():
|
| 55 |
+
if best is None or v["mae"] < base[best]["mae"]:
|
| 56 |
+
best = k
|
| 57 |
+
d["dataset_sha"] = _sha(p)
|
| 58 |
+
d["spec"] = SPEC_VERSION
|
| 59 |
+
d["best_baseline"] = best
|
| 60 |
+
# ๋ชจ๋ธ ์ค์ฐจ๊ฐ ์คํ ์ค์ฐจ์ ๋ช ๋ฐฐ์ธ๊ฐ. 1 ์ ๊ฐ๊น์ธ์๋ก ์ธก์ ํ๊ณ์ ๋ถ์ด ์๋ค.
|
| 61 |
+
if best and nf.get("sd_single"):
|
| 62 |
+
d["error_over_noise"] = round(base[best]["mae"] / nf["sd_single"], 2)
|
| 63 |
+
# ํ์ต ๊ธฐ์ค์ ์ด ์์ ์์ธก์ ๋์๋๊ฐ. 3์กฐ๊ฐ ํ์ ๋จ๊ธฐ๋ ์ฌ์ค.
|
| 64 |
+
if "์์ ์์ธก" in base and "Morgan+LightGBM" in base:
|
| 65 |
+
d["beats_constant"] = base["Morgan+LightGBM"]["mae"] < base["์์ ์์ธก"]["mae"]
|
| 66 |
+
out.append(d)
|
| 67 |
+
out.sort(key=lambda x: -x.get("n_test", 0))
|
| 68 |
+
_CACHE.update(t=time.time(), v=out)
|
| 69 |
+
return out
|
| 70 |
+
|
| 71 |
+
|
| 72 |
+
@app.get("/")
|
| 73 |
+
def index():
|
| 74 |
+
return FileResponse(os.path.join(HERE, "index.html"))
|
| 75 |
+
|
| 76 |
+
|
| 77 |
+
@app.get("/api/boards")
|
| 78 |
+
def api_boards():
|
| 79 |
+
return JSONResponse({"spec": SPEC_VERSION, "n": len(boards()), "boards": boards()})
|
| 80 |
+
|
| 81 |
+
|
| 82 |
+
@app.get("/api/health")
|
| 83 |
+
def health():
|
| 84 |
+
return {"ok": True, "boards": len(boards()), "spec": SPEC_VERSION,
|
| 85 |
+
"scoring_here": False}
|
data/egfr_card.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"board": "EGFR",
|
| 3 |
+
"target": "CHEMBL203",
|
| 4 |
+
"type": "IC50",
|
| 5 |
+
"cut": 2022,
|
| 6 |
+
"threshold": 7.0,
|
| 7 |
+
"n_train": 9231,
|
| 8 |
+
"n_test": 1565,
|
| 9 |
+
"positive_rate": 0.5891373801916933,
|
| 10 |
+
"noise_floor": {
|
| 11 |
+
"pairs": 36119,
|
| 12 |
+
"compounds": 1221,
|
| 13 |
+
"median": 0.7832196231327178,
|
| 14 |
+
"mean": 1.001829417173794,
|
| 15 |
+
"p75": 1.474959594551807,
|
| 16 |
+
"p90": 2.215294491882492,
|
| 17 |
+
"sd_single": 0.8881466464306685
|
| 18 |
+
},
|
| 19 |
+
"baselines": {
|
| 20 |
+
"์์ ์์ธก": {
|
| 21 |
+
"auroc": 0.5,
|
| 22 |
+
"prauc": 0.5891373801916933,
|
| 23 |
+
"mae": 0.9960533038964834
|
| 24 |
+
},
|
| 25 |
+
"์ต๊ทผ์ ์ด์": {
|
| 26 |
+
"auroc": 0.5653230349871636,
|
| 27 |
+
"prauc": 0.6233627561582259,
|
| 28 |
+
"mae": 1.192082140711924
|
| 29 |
+
},
|
| 30 |
+
"Morgan+LightGBM": {
|
| 31 |
+
"auroc": 0.5626553944869326,
|
| 32 |
+
"prauc": 0.6411612126697581,
|
| 33 |
+
"mae": 1.0701786646876255
|
| 34 |
+
}
|
| 35 |
+
},
|
| 36 |
+
"near_threshold": 874,
|
| 37 |
+
"holdout": "time-split(first-report-year)",
|
| 38 |
+
"built": "2026-08-22"
|
| 39 |
+
}
|
data/her2_card.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"board": "HER2",
|
| 3 |
+
"target": "CHEMBL1824",
|
| 4 |
+
"type": "IC50",
|
| 5 |
+
"cut": 2022,
|
| 6 |
+
"threshold": 7.0,
|
| 7 |
+
"n_train": 2262,
|
| 8 |
+
"n_test": 236,
|
| 9 |
+
"positive_rate": 0.5508474576271186,
|
| 10 |
+
"noise_floor": {
|
| 11 |
+
"pairs": 2694,
|
| 12 |
+
"compounds": 223,
|
| 13 |
+
"median": 0.35962471092982806,
|
| 14 |
+
"mean": 0.5617396930944518,
|
| 15 |
+
"p75": 0.7970365945440179,
|
| 16 |
+
"p90": 1.4785959402856683,
|
| 17 |
+
"sd_single": 0.4979961818213226
|
| 18 |
+
},
|
| 19 |
+
"baselines": {
|
| 20 |
+
"์์ ์์ธก": {
|
| 21 |
+
"auroc": 0.5,
|
| 22 |
+
"prauc": 0.5508474576271186,
|
| 23 |
+
"mae": 1.0639157321898522
|
| 24 |
+
},
|
| 25 |
+
"์ต๊ทผ์ ์ด์": {
|
| 26 |
+
"auroc": 0.6084179970972423,
|
| 27 |
+
"prauc": 0.61201465958597,
|
| 28 |
+
"mae": 1.245037797485603
|
| 29 |
+
},
|
| 30 |
+
"Morgan+LightGBM": {
|
| 31 |
+
"auroc": 0.7604136429608127,
|
| 32 |
+
"prauc": 0.7849782771815919,
|
| 33 |
+
"mae": 0.9163787230821009
|
| 34 |
+
}
|
| 35 |
+
},
|
| 36 |
+
"near_threshold": 65,
|
| 37 |
+
"holdout": "time-split(first-report-year)",
|
| 38 |
+
"built": "2026-08-22"
|
| 39 |
+
}
|
data/herg_card.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"board": "hERG",
|
| 3 |
+
"target": "CHEMBL240",
|
| 4 |
+
"type": "IC50",
|
| 5 |
+
"cut": 2022,
|
| 6 |
+
"threshold": 5.0,
|
| 7 |
+
"n_train": 8450,
|
| 8 |
+
"n_test": 1338,
|
| 9 |
+
"positive_rate": 0.585949177877429,
|
| 10 |
+
"noise_floor": {
|
| 11 |
+
"pairs": 5185,
|
| 12 |
+
"compounds": 857,
|
| 13 |
+
"median": 0.14793898523038607,
|
| 14 |
+
"mean": 0.47494876125752883,
|
| 15 |
+
"p75": 0.6690067809585756,
|
| 16 |
+
"p90": 1.3377444185444354,
|
| 17 |
+
"sd_single": 0.4210538663630575
|
| 18 |
+
},
|
| 19 |
+
"baselines": {
|
| 20 |
+
"์์ ์์ธก": {
|
| 21 |
+
"auroc": 0.5,
|
| 22 |
+
"prauc": 0.585949177877429,
|
| 23 |
+
"mae": 0.5887837936811489
|
| 24 |
+
},
|
| 25 |
+
"์ต๊ทผ์ ์ด์": {
|
| 26 |
+
"auroc": 0.56607327046342,
|
| 27 |
+
"prauc": 0.6209289133630831,
|
| 28 |
+
"mae": 0.7761432713342975
|
| 29 |
+
},
|
| 30 |
+
"Morgan+LightGBM": {
|
| 31 |
+
"auroc": 0.6063324246666175,
|
| 32 |
+
"prauc": 0.703536813371362,
|
| 33 |
+
"mae": 0.5986207163323017
|
| 34 |
+
}
|
| 35 |
+
},
|
| 36 |
+
"near_threshold": 696,
|
| 37 |
+
"holdout": "time-split(first-report-year)",
|
| 38 |
+
"built": "2026-08-22"
|
| 39 |
+
}
|
data/kit_card.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"board": "KIT",
|
| 3 |
+
"target": "CHEMBL1936",
|
| 4 |
+
"type": "IC50",
|
| 5 |
+
"cut": 2022,
|
| 6 |
+
"threshold": 7.0,
|
| 7 |
+
"n_train": 1788,
|
| 8 |
+
"n_test": 158,
|
| 9 |
+
"positive_rate": 0.44936708860759494,
|
| 10 |
+
"noise_floor": {
|
| 11 |
+
"pairs": 1112,
|
| 12 |
+
"compounds": 148,
|
| 13 |
+
"median": 0.2277576092268765,
|
| 14 |
+
"mean": 0.4820099895784595,
|
| 15 |
+
"p75": 0.8325089127062366,
|
| 16 |
+
"p90": 1.3783444526086566,
|
| 17 |
+
"sd_single": 0.4273138205482797
|
| 18 |
+
},
|
| 19 |
+
"baselines": {
|
| 20 |
+
"์์ ์์ธก": {
|
| 21 |
+
"auroc": 0.5,
|
| 22 |
+
"prauc": 0.44936708860759494,
|
| 23 |
+
"mae": 0.957307716818397
|
| 24 |
+
},
|
| 25 |
+
"์ต๊ทผ์ ์ด์": {
|
| 26 |
+
"auroc": 0.5853164966812369,
|
| 27 |
+
"prauc": 0.4971840536892239,
|
| 28 |
+
"mae": 1.1300454240335485
|
| 29 |
+
},
|
| 30 |
+
"Morgan+LightGBM": {
|
| 31 |
+
"auroc": 0.6422211429496519,
|
| 32 |
+
"prauc": 0.661580797441272,
|
| 33 |
+
"mae": 0.9250771660303996
|
| 34 |
+
}
|
| 35 |
+
},
|
| 36 |
+
"near_threshold": 40,
|
| 37 |
+
"holdout": "time-split(first-report-year)",
|
| 38 |
+
"built": "2026-08-22"
|
| 39 |
+
}
|
data/vegfr2_card.json
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"board": "VEGFR2",
|
| 3 |
+
"target": "CHEMBL279",
|
| 4 |
+
"type": "IC50",
|
| 5 |
+
"cut": 2022,
|
| 6 |
+
"threshold": 7.0,
|
| 7 |
+
"n_train": 9125,
|
| 8 |
+
"n_test": 637,
|
| 9 |
+
"positive_rate": 0.37990580847723704,
|
| 10 |
+
"noise_floor": {
|
| 11 |
+
"pairs": 10578,
|
| 12 |
+
"compounds": 1058,
|
| 13 |
+
"median": 0.5253393438279943,
|
| 14 |
+
"mean": 0.8597664104703135,
|
| 15 |
+
"p75": 1.276896315947262,
|
| 16 |
+
"p90": 2.3187587626244124,
|
| 17 |
+
"sd_single": 0.7622042646013418
|
| 18 |
+
},
|
| 19 |
+
"baselines": {
|
| 20 |
+
"์์ ์์ธก": {
|
| 21 |
+
"auroc": 0.5,
|
| 22 |
+
"prauc": 0.37990580847723704,
|
| 23 |
+
"mae": 0.963882867319296
|
| 24 |
+
},
|
| 25 |
+
"์ต๊ทผ์ ์ด์": {
|
| 26 |
+
"auroc": 0.6542786902395648,
|
| 27 |
+
"prauc": 0.4889038202589405,
|
| 28 |
+
"mae": 0.9911654472219389
|
| 29 |
+
},
|
| 30 |
+
"Morgan+LightGBM": {
|
| 31 |
+
"auroc": 0.7233654147923423,
|
| 32 |
+
"prauc": 0.6187042221833905,
|
| 33 |
+
"mae": 0.8203045097805136
|
| 34 |
+
}
|
| 35 |
+
},
|
| 36 |
+
"near_threshold": 301,
|
| 37 |
+
"holdout": "time-split(first-report-year)",
|
| 38 |
+
"built": "2026-08-22"
|
| 39 |
+
}
|
index.html
ADDED
|
@@ -0,0 +1,215 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!doctype html>
|
| 2 |
+
<html lang="ko">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="utf-8">
|
| 5 |
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
| 6 |
+
<title>LEADBOARD โ ์ ์ฝ ์์ธก ๋๊ตฌ ์ํ๋</title>
|
| 7 |
+
<!-- <head> ๋ ์ ํ์ด ์๋๋ค: ํ๋ซํผ์ด ์๊ธฐ ํ๊ทธ๋ฅผ ๋ฌธ์์ ์ฃผ์
ํ๋๋ฐ, ๋ฐ์ head ๊ฐ ์์ผ๋ฉด
|
| 8 |
+
๊ทธ๊ฒ๋ค์ด doctype ์์ ๋์ด๊ณ ํ์ด์ง ์ ์ฒด๊ฐ ์ฟผํฌ ๋ชจ๋๋ก ๋จ์ด์ง๋ค. -->
|
| 9 |
+
<style>
|
| 10 |
+
:root{
|
| 11 |
+
--bg:#f6f7f9; --card:#fff; --ink:#15171c; --muted:#68707d; --line:#e3e6ea;
|
| 12 |
+
--accent:#2a4d8f; --accent-soft:#e9eff9; --edge:#c8d4e8;
|
| 13 |
+
--warn:#8a5a00; --warn-soft:#fff6e0; --good:#1d7a4d;
|
| 14 |
+
--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
|
| 15 |
+
}
|
| 16 |
+
@media (prefers-color-scheme: dark){
|
| 17 |
+
:root:not([data-theme="light"]){
|
| 18 |
+
--bg:#0f1115; --card:#171a20; --ink:#e7eaee; --muted:#98a0ac; --line:#282d36;
|
| 19 |
+
--accent:#7aa2e8; --accent-soft:#161e2c; --edge:#2f3a4d;
|
| 20 |
+
--warn:#e0b23c; --warn-soft:#282112; --good:#4cc98a;
|
| 21 |
+
}
|
| 22 |
+
}
|
| 23 |
+
:root[data-theme="dark"]{
|
| 24 |
+
--bg:#0f1115; --card:#171a20; --ink:#e7eaee; --muted:#98a0ac; --line:#282d36;
|
| 25 |
+
--accent:#7aa2e8; --accent-soft:#161e2c; --edge:#2f3a4d;
|
| 26 |
+
--warn:#e0b23c; --warn-soft:#282112; --good:#4cc98a;
|
| 27 |
+
}
|
| 28 |
+
*{box-sizing:border-box}
|
| 29 |
+
body{margin:0;background:var(--bg);color:var(--ink);line-height:1.72;
|
| 30 |
+
font-family:-apple-system,BlinkMacSystemFont,"Pretendard","Apple SD Gothic Neo",
|
| 31 |
+
"Malgun Gothic",Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}
|
| 32 |
+
.wrap{max-width:860px;margin:0 auto;padding:0 20px 96px}
|
| 33 |
+
code,.mono{font-family:var(--mono)}
|
| 34 |
+
header{padding:70px 0 38px;border-bottom:1px solid var(--line);margin-bottom:40px}
|
| 35 |
+
.brand{font-size:clamp(38px,8vw,62px);font-weight:800;letter-spacing:-.035em;margin:0 0 6px;line-height:1.02}
|
| 36 |
+
.brand span{color:var(--accent)}
|
| 37 |
+
.kr{font-size:15px;color:var(--muted);margin:0 0 26px}
|
| 38 |
+
.tag{font-size:clamp(19px,3.4vw,26px);font-weight:700;line-height:1.45;margin:0 0 10px;letter-spacing:-.015em}
|
| 39 |
+
.tag-en{font-size:14px;color:var(--muted);font-style:italic;margin:0}
|
| 40 |
+
h2{font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
|
| 41 |
+
color:var(--accent);margin:56px 0 18px}
|
| 42 |
+
h3{font-size:19px;font-weight:700;margin:30px 0 10px;letter-spacing:-.01em}
|
| 43 |
+
p{margin:0 0 16px}.lead{font-size:17px}
|
| 44 |
+
.quote{border-left:3px solid var(--accent);padding:4px 0 4px 18px;margin:22px 0;
|
| 45 |
+
font-size:18px;font-weight:600;line-height:1.6}
|
| 46 |
+
.fig{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px 22px;
|
| 47 |
+
margin:20px 0;font-family:var(--mono);font-size:13.5px;line-height:2.0;overflow-x:auto}
|
| 48 |
+
.fig .n{color:var(--accent);font-weight:700}.fig .dim{color:var(--muted)}
|
| 49 |
+
.fig .big{font-size:17px;font-weight:700}
|
| 50 |
+
.note{background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent);
|
| 51 |
+
border-radius:10px;padding:14px 18px;font-size:14.5px;margin:22px 0}
|
| 52 |
+
table{width:100%;border-collapse:collapse;font-size:14px;margin:18px 0}
|
| 53 |
+
th{text-align:right;font-weight:600;color:var(--muted);font-size:12px;letter-spacing:.04em;
|
| 54 |
+
text-transform:uppercase;padding:8px 10px;border-bottom:1px solid var(--line)}
|
| 55 |
+
th:first-child,td:first-child{text-align:left}
|
| 56 |
+
td{padding:11px 10px;border-bottom:1px solid var(--line);text-align:right;font-family:var(--mono)}
|
| 57 |
+
td:first-child{font-family:inherit;font-weight:600}
|
| 58 |
+
.tw{overflow-x:auto}
|
| 59 |
+
.bad{color:var(--warn);font-weight:700}.ok{color:var(--good)}
|
| 60 |
+
ol.cl{list-style:none;counter-reset:c;padding:0;margin:20px 0}
|
| 61 |
+
ol.cl li{counter-increment:c;position:relative;padding:15px 0 15px 52px;border-top:1px solid var(--line)}
|
| 62 |
+
ol.cl li:last-child{border-bottom:1px solid var(--line)}
|
| 63 |
+
ol.cl li::before{content:counter(c);position:absolute;left:0;top:15px;width:30px;height:30px;
|
| 64 |
+
border-radius:50%;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:13px;
|
| 65 |
+
display:flex;align-items:center;justify-content:center;font-family:var(--mono)}
|
| 66 |
+
ol.cl b{display:block;font-size:16px;margin-bottom:3px}
|
| 67 |
+
ol.cl span{font-size:14.5px;color:var(--muted)}
|
| 68 |
+
footer{margin-top:72px;padding-top:26px;border-top:1px solid var(--line);
|
| 69 |
+
font-size:13px;color:var(--muted);display:flex;gap:18px;flex-wrap:wrap}
|
| 70 |
+
footer a{color:var(--accent);text-decoration:none}
|
| 71 |
+
footer a:hover{text-decoration:underline}
|
| 72 |
+
</style>
|
| 73 |
+
</head>
|
| 74 |
+
<body>
|
| 75 |
+
<div class="wrap">
|
| 76 |
+
|
| 77 |
+
<header>
|
| 78 |
+
<h1 class="brand">LEAD<span>BOARD</span></h1>
|
| 79 |
+
<p class="kr">๋ฆฌ๋๋ณด๋ ยท AI ์ ์ฝ ์์ธก ๋๊ตฌ ์ํ๋ ยท ๊ท๊ฒฉ v1.1</p>
|
| 80 |
+
<p class="tag">์ ์ฝ ์์ธก ๋๊ตฌ๋ฅผ,<br>๋ถ์ผ๋ณ๋ก, ๊ฐ์ ์ฃ๋๋ก ์ฐ๋ค.</p>
|
| 81 |
+
<p class="tag-en">One yardstick, per discipline, for drug prediction tools.</p>
|
| 82 |
+
</header>
|
| 83 |
+
|
| 84 |
+
<h2>๋ฌด์์ ํ๋ ๊ณณ์ธ๊ฐ</h2>
|
| 85 |
+
|
| 86 |
+
<p class="lead">์ ์ฝ์ ๋ง๋ค๋ ค๋ฉด ์คํ ์ ์ ์์ธกํด์ผ ํ ๊ฒ์ด ๋ง๊ณ , <strong>๋ถ์ผ๋ง๋ค ์ ๋ฌธ ๋๊ตฌ๊ฐ ๋ฐ๋ก ์์ต๋๋ค.</strong></p>
|
| 87 |
+
|
| 88 |
+
<div class="fig">
|
| 89 |
+
ํก์ยทํฌ๊ณผ <span class="dim">์ฅ์์ ํก์๋๋๊ฐ</span><br>
|
| 90 |
+
๋ถํฌ <span class="dim">ํ์ก ๋จ๋ฐฑ์ง์ ๋ถ๋๊ฐ ยท ๋๊น์ง ๊ฐ๋๊ฐ</span><br>
|
| 91 |
+
๋์ฌ <span class="dim">๊ฐ์์ ์ผ๋ง๋ ๋นจ๋ฆฌ ์ฌ๋ผ์ง๋๊ฐ</span><br>
|
| 92 |
+
๋
์ฑ <span class="dim">์ฌ์ฅ(hERG) ยท ๊ฐ(DILI) ยท ๋ณ์ด์์ฑ</span><br>
|
| 93 |
+
ํ์ <span class="dim">ํค๋์์ ์๋ฐฑ ๊ฐ ์ค ์ด๋์ ๋ถ๋๊ฐ</span><br>
|
| 94 |
+
์์ <span class="dim">์ฌ๋ ๋ชธ์ ์ผ๋ง๋ ๋จ๋๊ฐ ยท ๋ค๋ฅธ ์ฝ๊ณผ ๋ถ๋ชํ๋๊ฐ</span>
|
| 95 |
+
</div>
|
| 96 |
+
|
| 97 |
+
<p>๊ฐ ์นธ๋ง๋ค ๋๊ตฌ๊ฐ ์์ญ ๊ฐ์ฉ ์์ต๋๋ค. ๋ฌธ์ ๋ <strong>๊ทธ ์ฑ๋ฅ์ ๋๊ฐ ์ฌ๋๋</strong>์
๋๋ค.
|
| 98 |
+
์ง๊ธ์ ๊ฐ๋ฐ์๊ฐ ์๊ธฐ ๋
ผ๋ฌธ์์, ์๊ธฐ๊ฐ ๊ณ ๋ฅธ ๋ฐ์ดํฐ๋ก ๋ฐํํฉ๋๋ค. ๊ฐ์ ๋ฌธ์ ๋ก ์ฐ ๊ฒ ์๋๋ ๋น๊ต๊ฐ ์ ๋ฉ๋๋ค.</p>
|
| 99 |
+
|
| 100 |
+
<div class="quote">์๋์ฐจ ์ฐ๋น๋ฅผ ์ ์กฐ์ฌ๊ฐ ์ค์ค๋ก ์ฌ์ ๋ฐํํ๋ฉด ์๋ฌด๋ ๋ฏฟ์ง ์์ต๋๋ค.<br>
|
| 101 |
+
๊ณต์ธ ์ํ์๊ฐ ๊ฐ์ ์ฝ์ค์์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ๊ธฐ ๋๋ฌธ์ ๋น๊ต๊ฐ ๋ฉ๋๋ค.</div>
|
| 102 |
+
|
| 103 |
+
<p><strong>LEADBOARD๋ ๋ถ์ผ๋ณ๋ก, ๊ฐ์ ๋ฌธ์ ๋ก, ๊ฐ์ ์ฃ๋๋ก ํ๊ฐํฉ๋๋ค.</strong>
|
| 104 |
+
์ํ์ด ๊ณต์ ํ๋ ค๋ฉด ๋ฌธ์ ๋ฅผ ๋ฏธ๋ฆฌ ์๋ ค์ฃผ๋ฉด ์ ๋๋ฏ๋ก, <strong>์ ๋ต์ ๋ฐฐํฌํ์ง ์์ต๋๋ค.</strong>
|
| 105 |
+
๋๊ตฌ ๊ฐ๋ฐ์๋ ํํฉ๋ฌผ์ ๊ตฌ์กฐ๋ง ๋ฐ๊ณ , ์์ธก๊ฐ์ ์ ์ถํ๋ฉด ์ฑ์ ์ ์ฐ๋ฆฌ๊ฐ ํฉ๋๋ค.</p>
|
| 106 |
+
|
| 107 |
+
<h2>๊ทธ๋ผ ์ํ์๋ ๋๊ฐ ๊ฒ์ฆํ๋</h2>
|
| 108 |
+
|
| 109 |
+
<p>๊ทธ๋์ ์ฑ์ ์์ธ ์ฐ๋ฆฌ๊ฐ <strong>๋จผ์ </strong> ๊ณต๊ฐํฉ๋๋ค โ
|
| 110 |
+
์๋ฌด๊ฒ๋ ํ์ตํ์ง ์์ <strong>๊ธฐ์ค์ </strong>, ๊ทธ ๋ถ์ผ์ <strong>์คํ ์ค์ฐจ ๋ฒ์</strong>,
|
| 111 |
+
๊ทธ๋ฆฌ๊ณ ์ ์๋ง๋ค ๊ฐ์ธ๋ <strong>๋ฐ์ดํฐยท์ฑ์ ๊ธฐ ์ง๋ฌธ</strong>.</p>
|
| 112 |
+
|
| 113 |
+
<p><strong>์ฐ๋ฆฌ ์ ์๋ฅผ ๋ฏฟ์ด๋ฌ๋ผ๊ณ ํ์ง ์์ต๋๋ค. ํ์ธํด๋ณด๋ผ๊ณ ํฉ๋๋ค.</strong></p>
|
| 114 |
+
|
| 115 |
+
<h2>๊ฐ๋ง ๋ถ๋ฌธ ยท ์ค์ธก</h2>
|
| 116 |
+
|
| 117 |
+
<p>์๋ ๊ฐ์ ์ ๋ถ <strong>์ฐ๋ฆฌ๊ฐ ์ง์ ์ฐ ๊ฒ</strong>์
๋๋ค. ๋ฐ์ดํฐ๋ ChEMBL_37,
|
| 118 |
+
๋ถํ ์ <strong>์ต์ด ๋ณด๊ณ ์ฐ๋ ๊ธฐ์ค 2022๋
</strong>, ๊ธฐ์ค์ ์ ํ๋ ์๋ ๊ธฐ๋ณธ๊ฐ์
๋๋ค.</p>
|
| 119 |
+
|
| 120 |
+
<div class="tw"><table id="bt">
|
| 121 |
+
<thead><tr>
|
| 122 |
+
<th>๋ถ๋ฌธ</th><th>ํ
์คํธ</th><th>AUROC</th><th>์ต์ ๊ธฐ์ค์ MAE</th>
|
| 123 |
+
<th>์คํ ์ก์</th><th>์ค์ฐจรท์ก์</th><th>์๊ณ ๋
ธ์ถ</th>
|
| 124 |
+
</tr></thead>
|
| 125 |
+
<tbody><tr><td colspan="7" style="text-align:center;color:var(--muted)">๋ถ๋ฌ์ค๋ ์คโฆ</td></tr></tbody>
|
| 126 |
+
</table></div>
|
| 127 |
+
|
| 128 |
+
<div class="note" id="rd"></div>
|
| 129 |
+
|
| 130 |
+
<h3>์ด ํ๋ฅผ ์ฝ๋ ๋ฒ</h3>
|
| 131 |
+
|
| 132 |
+
<p><strong>์ค์ฐจรท์ก์</strong>์ด ์ด ํ์ ํต์ฌ์
๋๋ค. 1์ ๊ฐ๊น์ธ์๋ก ๋ชจ๋ธ ์ค์ฐจ๊ฐ ์คํ ์ค์ฐจ์
|
| 133 |
+
๊ฐ์์ง๋ค๋ ๋ป์ด๊ณ , ๊ทธ ์ง์ ๋ถํฐ๋ ๋ชจ๋ธ์ ๊ฐ์ ํด๋ <strong>์ธก์ ์ ํ๋ค๋ฆผ์ ๋งํ๋ ์ผ</strong>์ด ๋ฉ๋๋ค.</p>
|
| 134 |
+
|
| 135 |
+
<p><strong>์๊ณ ๋
ธ์ถ</strong>์ ๋ถ๋ฅ ์๊ณ์ ์์ ์คํ ์ค์ฐจ ํ ์นธ ์์ ์๋ ํ
์คํธ ํํฉ๋ฌผ์ ๋น์จ์
๋๋ค.
|
| 136 |
+
์ด ๊ฐ์ด ๋์ ๋ถ๋ฌธ์ ๋ผ๋ฒจ ์์ฒด๊ฐ ํ๋ค๋ฆฌ๋ฏ๋ก <strong>ํ๊ท๋ฅผ ์ฃผ์งํ๋ก</strong> ๋ก๋๋ค.</p>
|
| 137 |
+
|
| 138 |
+
<h2>๋ถํ ์ ๋ฐ๊พธ๋ฉด ์ด๋ป๊ฒ ๋๋๊ฐ</h2>
|
| 139 |
+
|
| 140 |
+
<p>๊ฐ์ ๋ฐ์ดํฐ, ๊ฐ์ ๋ชจ๋ธ(Morgan+LightGBM ๊ธฐ๋ณธ๊ฐ), ๊ฐ์ ํ
์คํธ ๋น์จ.
|
| 141 |
+
<strong>๋ถํ ๋ฐฉ์๋ง</strong> ๋ฐ๊ฟ hERG์์ ์ธก์ ํ์ต๋๋ค.</p>
|
| 142 |
+
|
| 143 |
+
<div class="fig">
|
| 144 |
+
๋ฌด์์ ๋ถํ <span class="dim">(5์๋ ํ๊ท )</span> AUROC <span class="n">0.818</span> ยท MAE <span class="n">0.457</span><br>
|
| 145 |
+
์๊ฐ ๋ถํ <span class="dim">(2022 ๊ธฐ์ค)</span> AUROC <span class="n">0.606</span> ยท MAE <span class="n">0.599</span><br>
|
| 146 |
+
<br>
|
| 147 |
+
<span class="big">AUROC โ0.211 ยท MAE +0.142 log</span>
|
| 148 |
+
</div>
|
| 149 |
+
|
| 150 |
+
<p>๋ถํ ๋ฐฉ์์ด ๊ณต์๋์ง ์์ ์์ํ์ ์ซ์๋ <strong>๊ทธ ์์ฒด๋ก ๋น๊ต๊ฐ ๋ถ๊ฐ๋ฅํฉ๋๋ค.</strong>
|
| 151 |
+
๊ฐ์ ๋ฐ์ดํฐ์์ ๋ถํ ํ๋๊ฐ AUROC๋ฅผ 0.21 ์์ง์
๋๋ค.</p>
|
| 152 |
+
|
| 153 |
+
<h2>์ฑ์ ์๊ฐ ์ค์ค๋ก์๊ฒ ๋ถ๊ณผํ๋ 8๊ฐ ์กฐํญ</h2>
|
| 154 |
+
|
| 155 |
+
<ol class="cl">
|
| 156 |
+
<li><b>์ ๋ต์ ๋ฐฐํฌํ์ง ์๋๋ค</b><span>์๊ฐ ๋ถํ ยท ์ฌํ๋ ์ด์
ยท ๋ฏธ๊ณต๊ฐ ์ค์ธก์ผ๋ก๋ง ํ๋์์์ ๋ง๋ค๊ณ , ๋ถ๋ฌธ๋ง๋ค ์ด๋ ๋ฐฉ์์ธ์ง ๋ช
์ํ๋ค</span></li>
|
| 157 |
+
<li><b>์ ์๋ง๋ค ๋ ๊ฐ์ ์ง๋ฌธ</b><span>๋ฐ์ดํฐ ํ๋ณธ๊ณผ ์ฑ์ ์ฝ๋์ SHA-256. ์ง๋ฌธ์ด ๋ค๋ฅธ ์ ์๋ ๊ฐ์ ํ์ ์ธ์ฐ์ง ์๋๋ค</span></li>
|
| 158 |
+
<li><b>๊ธฐ์ค์ ์ ํ์์ ๋ด๋ ค๊ฐ์ง ์๋๋ค</b><span>์์ ์์ธก ยท ์ต๊ทผ์ ์ด์ ยท Morgan+LightGBM ์๊ตฌ ๋ฑ์ฌ. ๋ชป ๋์ ์ ์ถ์ ๊ธฐ์ค์ ์๋ ๊ทธ๋๋ก ํ์ํ๋ค</span></li>
|
| 159 |
+
<li><b>์ก์ ๋ฐ๋ฅ์ ๋จผ์ ๊ณต์ํ๋ค</b><span>๊ฐ์ ํํฉ๋ฌผ์ ์๋ก ๋ค๋ฅธ ๋
ผ๋ฌธ์์ ์ฐ ์ฐจ์ด๋ก ์ฐ์ถํ๋ค. ๊ทธ ์์ ๋ ์ ์ถ์ ๊ฐ์ ๊ณ๋จ์ ๋ฌถ๋๋ค</span></li>
|
| 160 |
+
<li><b>๋์ถ์ ๋งค ์ ์ถ๋ง๋ค ๊ฒ์ฌํ๋ค</b><span>๊ตฌ์กฐ ๋์ผ ยท ๊ณจ๊ฒฉ ์ค๋ณต ยท Tanimoto ๊ทผ์ ๋ ยท ์ฌ์ ํ์ต ์ค์ผ. ๊ฒฐ๊ณผ๋ ์ ์์ ํจ๊ป ๊ณต์ํ๋ค</span></li>
|
| 161 |
+
<li><b>๊ฒฐ๊ณผ ์ ์ถ๊ณผ ๋ชจ๋ธ ์ ์ถ์ ๊ตฌ๋ถํ๋ค</b><span>์ปจํ
์ด๋๊น์ง ์ ์ถํด ์ฐ๋ฆฌ๊ฐ ์ง์ ๋๋ ค๋ณธ ๊ฒ๋ง [๊ฒ์ฆ๋จ] ํ์๋ฅผ ๋ฐ๋๋ค</span></li>
|
| 162 |
+
<li><b>๋ฏธ์ฐ์ถ์ 0์ ์ด ์๋๋ค</b><span>๊ตฌํ ์ถ์ ์ ์๋ก ๋จ๊ธฐ๊ณ ๋ชป ๊ตฌํ ์ถ์ ๋น์ด๋ค. ์ธก์ ํ์ง ๋ชปํ ๊ฒ๊ณผ ์ธก์ ํด์ ๋์ ๊ฒ์ ๋ค๋ฅด๋ค</span></li>
|
| 163 |
+
<li><b>๋ํ์ด ์ ์ถ๋ก๋ ์์๊ฐ ์ค๋ฅด์ง ์๋๋ค</b><span>์ง์ ์ต๊ณ ์ ์ ์ก์ ๋ฐ๋ฅ ์ด์์ผ๋ก ๋์์ ๋๋ง ์ ์ ์๋ฅผ ๊ณต๊ฐํ๋ค (Blum & Hardt, ICML 2015)</span></li>
|
| 164 |
+
</ol>
|
| 165 |
+
|
| 166 |
+
<h2>์ฐธ๊ฐ</h2>
|
| 167 |
+
|
| 168 |
+
<div class="fig">
|
| 169 |
+
โ ํ
์คํธ ํํฉ๋ฌผ์ <span class="n">๊ตฌ์กฐ๋ง</span> ๋ฐ๋๋ค <span class="dim">๋ผ๋ฒจ์ ์๋ค</span><br>
|
| 170 |
+
โก ์์ธก๊ฐ์ ์ฌ๋ฆฐ๋ค <span class="dim">predictions.csv โ compound_id, prediction [, uncertainty]</span><br>
|
| 171 |
+
โข ์๋ ์ฑ์ ยท ๋์ถ ๊ฒ์ฌ ยท ์ง๋ฌธ ๊ฐ์ธ<br>
|
| 172 |
+
โฃ ๊ธฐ์ค์ ยท ์ก์ ๋ฐ๋ฅ๊ณผ ํจ๊ป ํ์ ์ค๋ฅธ๋ค<br>
|
| 173 |
+
<span class="dim">์ปจํ
์ด๋๊น์ง ์ฌ๋ฆฌ๋ฉด ์ฐ๋ฆฌ๊ฐ ์ง์ ๋๋ ค [๊ฒ์ฆ๋จ]์ ๋ถ์ธ๋ค</span>
|
| 174 |
+
</div>
|
| 175 |
+
|
| 176 |
+
<div class="note">์ ์ ๊ฐ์ค ์ค๋น ์ค์
๋๋ค. ํ๋์์๊ณผ ์ก์ ๋ฐ๋ฅ์ ์ ํ๋๋ก ํ์ ๋์์ต๋๋ค.</div>
|
| 177 |
+
|
| 178 |
+
<footer>
|
| 179 |
+
<span>LEADBOARD ยท FINAL-Bench / VIDRAFT</span>
|
| 180 |
+
<a href="/api/boards">API</a>
|
| 181 |
+
<a href="https://huggingface.co/spaces/FINAL-Bench/open-discovery-challenge">Open Discovery Challenge</a>
|
| 182 |
+
<a href="https://huggingface.co/spaces/FINAL-Bench/open-materials-challenge">Open Materials Challenge</a>
|
| 183 |
+
</footer>
|
| 184 |
+
|
| 185 |
+
</div>
|
| 186 |
+
<script>
|
| 187 |
+
const f=(x,d=3)=>x==null?"โ":Number(x).toFixed(d);
|
| 188 |
+
fetch("/api/boards").then(r=>r.json()).then(d=>{
|
| 189 |
+
const tb=document.querySelector("#bt tbody"); tb.innerHTML="";
|
| 190 |
+
let win=0;
|
| 191 |
+
d.boards.forEach(b=>{
|
| 192 |
+
const bl=b.baselines||{}, best=b.best_baseline, nf=(b.noise_floor||{}).sd_single;
|
| 193 |
+
const au=Math.max(...Object.values(bl).map(v=>v.auroc||0));
|
| 194 |
+
const near=b.n_test?100*b.near_threshold/b.n_test:null;
|
| 195 |
+
if(b.beats_constant) win++;
|
| 196 |
+
const r=document.createElement("tr");
|
| 197 |
+
r.innerHTML=`<td>${b.board}</td><td>${(b.n_test||0).toLocaleString()}</td>`
|
| 198 |
+
+`<td>${f(au)}</td>`
|
| 199 |
+
+`<td>${f(bl[best]?.mae)} <span class="dim" style="font-size:11px">${best==="Morgan+LightGBM"?"":"("+best+")"}</span></td>`
|
| 200 |
+
+`<td>${f(nf)}</td>`
|
| 201 |
+
+`<td class="${b.error_over_noise<1.3?"bad":""}">${f(b.error_over_noise,2)}ร</td>`
|
| 202 |
+
+`<td class="${near>45?"bad":""}">${near==null?"โ":near.toFixed(1)+"%"}</td>`;
|
| 203 |
+
tb.appendChild(r);
|
| 204 |
+
});
|
| 205 |
+
document.getElementById("rd").innerHTML =
|
| 206 |
+
`<strong>${d.n}๊ฐ ๋ถ๋ฌธ ์ค ${win}๊ฐ</strong>์์ ํ์ต ๊ธฐ์ค์ (Morgan+LightGBM)์ด ์์ ์์ธก์ ๋์์ต๋๋ค. `
|
| 207 |
+
+`๋๋จธ์ง์์๋ <strong>์๋ฌด๊ฒ๋ ํ์ตํ์ง ์์ ์์ ์์ธก์ด ๋ ์ ํํ์ต๋๋ค.</strong> `
|
| 208 |
+
+`3์กฐ๊ฐ ์์๋ค๋ฉด ์ด ์ฌ์ค์ ํ์ ๋ํ๋์ง ์์ต๋๋ค.`;
|
| 209 |
+
}).catch(e=>{
|
| 210 |
+
document.querySelector("#bt tbody").innerHTML=
|
| 211 |
+
'<tr><td colspan="7" style="text-align:center;color:var(--muted)">๋ถ๋ฌธ ์๋ฃ๋ฅผ ๋ถ๋ฌ์ค์ง ๋ชปํ์ต๋๋ค</td></tr>';
|
| 212 |
+
});
|
| 213 |
+
</script>
|
| 214 |
+
</body>
|
| 215 |
+
</html>
|
requirements.txt
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
fastapi==0.115.0
|
| 2 |
+
uvicorn[standard]==0.30.6
|
| 3 |
+
pydantic==2.9.2
|