chess-tutor / src /chess_tutor /web /elo_embedding_plot.py
github-actions[bot]
deploy prod from 06dbd16a01ddcfe02b2d936c681e3e4eaa9b141f
8e756fd
Raw
History Blame Contribute Delete
946 Bytes
"""Listed Elo vs PCA / t-SNE projection plots for the web UI."""
from __future__ import annotations
from typing import Any, Literal
from chess_tutor.inference.pipeline import InferenceResult
from chess_tutor.playstyle_coaching.teacher import TeacherCoachingBundle
from chess_tutor.web.embedding import build_all_embedding_plots
def build_elo_embedding_plot(
result: InferenceResult,
method: Literal["pca", "tsne"],
*,
corpus_id: str = "standard_600",
teacher_bundle: TeacherCoachingBundle | None = None,
max_points: int = 6000,
seed: int = 42,
) -> dict[str, Any] | None:
"""Place cohort snapshots and the analyzed player on listed Elo (x) vs embedding (y)."""
key = "elo_pca_plot" if method == "pca" else "elo_tsne_plot"
return build_all_embedding_plots(
result,
corpus_id=corpus_id,
teacher_bundle=teacher_bundle,
max_points=max_points,
seed=seed,
)[key]