{"id":49915847,"url":"https://github.com/kaito47802/condped-anova","last_synced_at":"2026-05-16T16:12:22.178Z","repository":{"id":358204955,"uuid":"1153785186","full_name":"kAIto47802/condPED-ANOVA","owner":"kAIto47802","description":"[KDD '26] Conditional PED-ANOVA: Hyperparameter Importance in Hierarchical \u0026 Dynamic Search Spaces","archived":false,"fork":false,"pushed_at":"2026-05-16T07:59:54.000Z","size":242,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-16T09:37:53.452Z","etag":null,"topics":["ai","artificial-intelligence","automatic-machine-learning","automl","hyperparameter-optimization","hyperparameter-tuning","machine-learning"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kAIto47802.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-09T17:06:53.000Z","updated_at":"2026-05-16T08:03:22.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kAIto47802/condPED-ANOVA","commit_stats":null,"previous_names":["kaito47802/condped-anova"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/kAIto47802/condPED-ANOVA","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kAIto47802%2FcondPED-ANOVA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kAIto47802%2FcondPED-ANOVA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kAIto47802%2FcondPED-ANOVA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kAIto47802%2FcondPED-ANOVA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kAIto47802","download_url":"https://codeload.github.com/kAIto47802/condPED-ANOVA/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kAIto47802%2FcondPED-ANOVA/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33109466,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","artificial-intelligence","automatic-machine-learning","automl","hyperparameter-optimization","hyperparameter-tuning","machine-learning"],"created_at":"2026-05-16T16:12:21.268Z","updated_at":"2026-05-16T16:12:22.171Z","avatar_url":"https://github.com/kAIto47802.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003ca href=\"https://github.com/kAIto47802/condPED-ANOVA\"\u003e\n    \u003cimg width=\"94%\" height=\"13px\" src=\"assets/titleLine1t.svg\" /\u003e\n  \u003c/a\u003e\n  Conditional PED-ANOVA: Hyperparameter Importance in Hierarchical \u0026 Dynamic Search Spaces\n  \u003ca href=\"https://github.com/kAIto47802/condPED-ANOVA\"\u003e\n    \u003cimg width=\"94%\" height=\"9px\" src=\"assets/titleLine1b.svg\" /\u003e\n  \u003c/a\u003e\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003e✨️ Accepted to the 32nd ACM SIGKDD Conference on Knowledge Discovery and Data Mining ✨\u003c/strong\u003e\n  \u003cbr /\u003e\n  \u003cstrong\u003e (KDD 2026) \u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  Kaito Baba \u0026emsp; Yoshihiko Ozaki \u0026emsp; Shuhei Watanabe\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  We propose \u003cem\u003econditional PED-ANOVA (condPED-ANOVA)\u003c/em\u003e, a principled framework for estimating hyperparameter importance (HPI) in conditional search spaces, where the presence or domain of a hyperparameter can depend on other hyperparameters.\n  Although the original PED-ANOVA provides a fast and efficient way to estimate HPI within the top-performing regions of the search space, it assumes a fixed, unconditional search space and therefore cannot properly handle conditional hyperparameters.\n  To address this, we introduce a conditional HPI for top-performing regions and derive a closed-form estimator that accurately reflects conditional activation and domain changes.\n  Experiments show that naive adaptations of existing HPI estimators yield misleading or uninterpretable importances in conditional settings, whereas condPED-ANOVA consistently provides meaningful importances that reflect the underlying conditional structure.\n\u003c/p\u003e\n\n\u003cdiv  align=\"center\"\u003e\n  \u003ca href=\"https://www.python.org\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12%20%7C%203.13%20%7C%203.14-blue\" alt=\"Python\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"http://arxiv.org/abs/2601.20800\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/arXiv-2601.20800-b31b1b.svg\" alt=\"arXiv\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n\u003ch2 align=\"center\"\u003e\n  \u003cdiv\u003e🚀 Quick Start 🚀\u003c/div\u003e\n  \u003ca href=\"https://github.com/kAIto47802/condPED-ANOVA\"\u003e\n    \u003cimg width=\"80%\" height=\"8px\" src=\"assets/line.svg\" /\u003e\n  \u003c/a\u003e\n\u003c/h2\u003e\n\n`cond_ped_anova` is fully compatible with [Optuna](https://github.com/optuna/optuna)’s built-in hyperparameter importance API.\n\n## 1. Installation\n\n```bash\nuv add git+https://github.com/kAIto47802/condPED-ANOVA.git\n# If you're using pip:\n# pip install git+https://github.com/kAIto47802/condPED-ANOVA.git\n```\n\n## 2. Usage\n\n```python\nimport optuna\nfrom cond_ped_anova import CondPedAnovaImportanceEvaluator\n\n\ndef objective(trial: optuna.trial.Trial) -\u003e float:\n    c = trial.suggest_float(\"c\", 0.0, 1.0)\n    if c \u003c 0.5:\n        x = trial.suggest_float(\"x\", -5.0, -2.0)\n        return x\n    else:\n        y = trial.suggest_float(\"y\", 2.0, 5.0)\n        return y\n\n\nsampler = optuna.samplers.RandomSampler(seed=42)\nstudy = optuna.create_study(direction=\"minimize\", sampler=sampler)\nstudy.optimize(objective, n_trials=1000)\n\nevaluator = CondPedAnovaImportanceEvaluator()\nimportance = optuna.importance.get_param_importances(study, evaluator=evaluator)\n```\n\n\u003ch2 align=\"center\"\u003e\n  \u003cdiv\u003e📊 Reproducing the Results 📊\u003c/div\u003e\n  \u003ca href=\"https://github.com/kAIto47802/condPED-ANOVA\"\u003e\n    \u003cimg width=\"80%\" height=\"8px\" src=\"assets/line.svg\" /\u003e\n  \u003c/a\u003e\n\u003c/h2\u003e\n\nAll experiments in [our paper](https://arxiv.org/abs/2601.20800) are fully reproducible.\n\n## 1. Clone this Repository \u0026 Install Dependencies\n\n```bash\ngit clone https://github.com/kAIto47802/condPED-ANOVA.git\n```\n\n```bash\nuv sync --python 3.13 --extra experiments\n# If you're using pip:\n# pip install --upgrade pip  # enable PEP 660 support\n# pip install -e '.[experiments]'\n```\n\n## 2. Run Experiments\n\nRunning the commands below reproduces the corresponding experiments and regenerates the exact figures:\n\n- condPED-ANOVA on synthetic problems (Figures 1, 7, and 11):\n   ```bash\n   ./run_cond_ped_anova.sh\n   ```\n\n- Baseline methods on synthetic problems (Figures 2, 9, and 10):\n   ```bash\n   ./run_baselines.sh\n   ```\n\n- Ablation study (Figures 3 and 4):\n    ```bash\n    ./run_ablations.sh\n    ```\n\n- condPED-ANOVA on real-world benchmarks (Figures 5 and 14 and Tables 1 and 2):\n    ```bash\n    # prepare YAHPO Gym data\n    git clone https://github.com/slds-lmu/yahpo_data.git\n\n    ./run_yahpo_gym.sh\n    ```\n\n- Runtime comparison (Figure 6):\n    ```bash\n    ./run_runtime_comparison.sh\n    ```\n\n- condPED-ANOVA Results with Different $N$ (Figure 8):\n    ```bash\n    ./run_cond_ped_anova_different_n.sh\n    ```\n\n- Additional Experiments on Synthetic\nProblems (Figures 12 and 13):\n    ```bash\n    ./run_cond_ped_anova_additional.sh\n    ```\n\n## 3. Check the Results\n\nThe generated figures will be saved in the `figures/` directory.\nThe raw experiment outputs (pickled results) and the values used in the tables are saved under `results/`.\n\n\u003e [!NOTE]\n\u003e If a LaTeX environment is not available, the figures will be rendered without LaTeX, which may slightly change font rendering and layout.\n\n\n\u003ch2 align=\"center\"\u003e\n  \u003cdiv\u003e🔖 Citation 🔖\u003c/div\u003e\n  \u003ca href=\"https://github.com/kAIto47802/condPED-ANOVA\"\u003e\n    \u003cimg width=\"80%\" height=\"8px\" src=\"assets/line.svg\" /\u003e\n  \u003c/a\u003e\n\u003c/h2\u003e\n\nIf you find condPED-ANOVA useful in your research, please consider citing the following paper:\n\n```bibtex\n@article{baba2026condpedanova,\n  title={Conditional {PED-ANOVA}: Hyperparameter Importance in Hierarchical \\\u0026 Dynamic Search Spaces},\n  author={Baba, Kaito and Ozaki, Yoshihiko and Watanabe, Shuhei},\n  journal={arXiv preprint arXiv:2601.20800},\n  year={2026},\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaito47802%2Fcondped-anova","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkaito47802%2Fcondped-anova","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkaito47802%2Fcondped-anova/lists"}