{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/adgym-design-choices-for-deep-anomaly-1","title":"ADGym: Design Choices for Deep Anomaly Detection","arxiv_id":"2309.15376","date":"2023-09-27","proceeding":"NeurIPS 2023 11","authors":["Minqi Jiang","Chaochuan Hou","Ao Zheng","Songqiao Han","Hailiang Huang","Qingsong Wen","Xiyang Hu","Yue Zhao"],"abstract":"Deep learning (DL) techniques have recently found success in anomaly detection (AD) across various fields such as finance, medical services, and cloud computing. However, most of the current research tends to view deep AD algorithms as a whole, without dissecting the contributions of individual design choices like loss functions and network architectures. This view tends to diminish the value of preliminary steps like data preprocessing, as more attention is given to newly designed loss functions, network architectures, and learning paradigms. In this paper, we aim to bridge this gap by asking two key questions: (i) Which design choices in deep AD methods are crucial for detecting anomalies? (ii) How can we automatically select the optimal design choices for a given AD dataset, instead of relying on generic, pre-existing solutions? To address these questions, we introduce ADGym, a platform specifically crafted for comprehensive evaluation and automatic selection of AD design elements in deep methods. Our extensive experiments reveal that relying solely on existing leading methods is not sufficient. In contrast, models developed using ADGym significantly surpass current state-of-the-art techniques.","url_abs":"https://arxiv.org/abs/2309.15376v2","url_pdf":"https://arxiv.org/pdf/2309.15376v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"adgym-design-choices-for-deep-anomaly-1","repo_url":"https://github.com/minqi824/adgym","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"adgym-design-choices-for-deep-anomaly-1","repo_url":"https://github.com/kishordgupta/pyod","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"BSD-2-Clause"}},{"paper_slug":"adgym-design-choices-for-deep-anomaly-1","repo_url":"https://github.com/yzhao062/pyod","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":null}],"tasks":[{"task_slug":"anomaly-detection","task_name":"Anomaly Detection"},{"task_slug":"cloud-computing","task_name":"Cloud Computing"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2309.15376","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2309.15376"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/kishordgupta/pyod","reach":{"status":"ok","spdx":"BSD-2-Clause"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yzhao062/pyod","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/minqi824/adgym","reach":{"status":"ok"}}],"summary":{"ran":1,"unverified":10},"by_repo_kind":{"official":{"samples":2,"ran":1,"repositories":1},"listed":{"samples":9,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":2,"samples":[{"code_sha256_prefix":"53b7f4edd07882e9","entry":"aucPerformance","repo":"minqi824/adgym","repo_kind":"official","path":"baseline/DevNet/utils.py","file_url":"https://github.com/minqi824/adgym/blob/HEAD/baseline/DevNet/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"53b7f4edd07882e9"}},{"code_sha256_prefix":"3f180a99a57a0025","entry":"build_detector","repo":"kishordgupta/pyod","repo_kind":"listed","path":"pyod/mcp_server.py","file_url":"https://github.com/kishordgupta/pyod/blob/HEAD/pyod/mcp_server.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"3f180a99a57a0025"}},{"code_sha256_prefix":"ca99dd7338af584e","entry":"dataLoading","repo":"minqi824/adgym","repo_kind":"official","path":"baseline/DevNet/utils.py","file_url":"https://github.com/minqi824/adgym/blob/HEAD/baseline/DevNet/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ca99dd7338af584e"}},{"code_sha256_prefix":"edb11a61b117738c","entry":"map_scores_to_timestamps","repo":"kishordgupta/pyod","repo_kind":"listed","path":"pyod/models/_ts_utils.py","file_url":"https://github.com/kishordgupta/pyod/blob/HEAD/pyod/models/_ts_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"edb11a61b117738c"}},{"code_sha256_prefix":"a1fa9b194ed1d24f","entry":"plan_detection","repo":"kishordgupta/pyod","repo_kind":"listed","path":"pyod/mcp_server.py","file_url":"https://github.com/kishordgupta/pyod/blob/HEAD/pyod/mcp_server.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"a1fa9b194ed1d24f"}},{"code_sha256_prefix":"b82893de917f6c66","entry":"profile_data","repo":"kishordgupta/pyod","repo_kind":"listed","path":"pyod/mcp_server.py","file_url":"https://github.com/kishordgupta/pyod/blob/HEAD/pyod/mcp_server.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"b82893de917f6c66"}},{"code_sha256_prefix":"3a05de4b44bc9d5d","entry":"sliding_windows","repo":"kishordgupta/pyod","repo_kind":"listed","path":"pyod/models/_ts_utils.py","file_url":"https://github.com/kishordgupta/pyod/blob/HEAD/pyod/models/_ts_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"3a05de4b44bc9d5d"}},{"code_sha256_prefix":"c001c12565b4768d","entry":"to_dense_adj_numpy","repo":"kishordgupta/pyod","repo_kind":"listed","path":"pyod/models/_pyg_utils.py","file_url":"https://github.com/kishordgupta/pyod/blob/HEAD/pyod/models/_pyg_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"c001c12565b4768d"}},{"code_sha256_prefix":"6e023ab4ca4d949d","entry":"to_sparse_adj","repo":"kishordgupta/pyod","repo_kind":"listed","path":"pyod/models/_pyg_utils.py","file_url":"https://github.com/kishordgupta/pyod/blob/HEAD/pyod/models/_pyg_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"6e023ab4ca4d949d"}},{"code_sha256_prefix":"2a1162c00e08e534","entry":"validate_graph_input","repo":"kishordgupta/pyod","repo_kind":"listed","path":"pyod/models/_pyg_utils.py","file_url":"https://github.com/kishordgupta/pyod/blob/HEAD/pyod/models/_pyg_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"2a1162c00e08e534"}},{"code_sha256_prefix":"2a9fd30f82830426","entry":"validate_ts_input","repo":"kishordgupta/pyod","repo_kind":"listed","path":"pyod/models/_ts_utils.py","file_url":"https://github.com/kishordgupta/pyod/blob/HEAD/pyod/models/_ts_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-2-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"2a9fd30f82830426"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}