{"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/inherently-interpretable-time-series","title":"Inherently Interpretable Time Series Classification via Multiple Instance Learning","arxiv_id":"2311.10049","date":"2023-11-16","proceeding":null,"authors":["Joseph Early","Gavin KC Cheung","Kurt Cutajar","Hanting Xie","Jas Kandola","Niall Twomey"],"abstract":"Conventional Time Series Classification (TSC) methods are often black boxes that obscure inherent interpretation of their decision-making processes. In this work, we leverage Multiple Instance Learning (MIL) to overcome this issue, and propose a new framework called MILLET: Multiple Instance Learning for Locally Explainable Time series classification. We apply MILLET to existing deep learning TSC models and show how they become inherently interpretable without compromising (and in some cases, even improving) predictive performance. We evaluate MILLET on 85 UCR TSC datasets and also present a novel synthetic dataset that is specially designed to facilitate interpretability evaluation. On these datasets, we show MILLET produces sparse explanations quickly that are of higher quality than other well-known interpretability methods. To the best of our knowledge, our work with MILLET, which is available on GitHub (https://github.com/JAEarly/MILTimeSeriesClassification), is the first to develop general MIL methods for TSC and apply them to an extensive variety of domains","url_abs":"https://arxiv.org/abs/2311.10049v3","url_pdf":"https://arxiv.org/pdf/2311.10049v3.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":"inherently-interpretable-time-series","repo_url":"https://github.com/jaearly/miltimeseriesclassification","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"decision-making","task_name":"Decision Making"},{"task_slug":"multiple-instance-learning","task_name":"Multiple Instance Learning"},{"task_slug":"time-series-1","task_name":"Time Series"},{"task_slug":"time-series-classification","task_name":"Time Series Classification"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2311.10049","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2311.10049"}},"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/jaearly/miltimeseriesclassification","reach":null}],"summary":{"ran_draft_wrong":4,"ran_fixture":2,"unverified":3},"by_repo_kind":{"official":{"samples":9,"ran":6,"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":0,"samples":[{"code_sha256_prefix":"70f76f85191e0560","entry":"_calculate_aopc","repo":"jaearly/miltimeseriesclassification","repo_kind":"official","path":"millet/model/millet_model.py","file_url":"https://github.com/jaearly/miltimeseriesclassification/blob/HEAD/millet/model/millet_model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"70f76f85191e0560"}},{"code_sha256_prefix":"8bae1493f34b31ad","entry":"_calculate_random_aopc","repo":"jaearly/miltimeseriesclassification","repo_kind":"official","path":"millet/model/millet_model.py","file_url":"https://github.com/jaearly/miltimeseriesclassification/blob/HEAD/millet/model/millet_model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8bae1493f34b31ad"}},{"code_sha256_prefix":"9d83fb3730c86507","entry":"_create_perturbed_bag","repo":"jaearly/miltimeseriesclassification","repo_kind":"official","path":"millet/model/millet_model.py","file_url":"https://github.com/jaearly/miltimeseriesclassification/blob/HEAD/millet/model/millet_model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9d83fb3730c86507"}},{"code_sha256_prefix":"2dce7fe2b42833d0","entry":"calculate_ndcg_at_n","repo":"jaearly/miltimeseriesclassification","repo_kind":"official","path":"millet/model/millet_model.py","file_url":"https://github.com/jaearly/miltimeseriesclassification/blob/HEAD/millet/model/millet_model.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2dce7fe2b42833d0"}},{"code_sha256_prefix":"437e0e6962fe1685","entry":"cross_entropy_criterion","repo":"jaearly/miltimeseriesclassification","repo_kind":"official","path":"millet/model/millet_model.py","file_url":"https://github.com/jaearly/miltimeseriesclassification/blob/HEAD/millet/model/millet_model.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"437e0e6962fe1685"}},{"code_sha256_prefix":"d370d48f01c0b9a8","entry":"mil_collate_fn","repo":"jaearly/miltimeseriesclassification","repo_kind":"official","path":"millet/model/millet_model.py","file_url":"https://github.com/jaearly/miltimeseriesclassification/blob/HEAD/millet/model/millet_model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"d370d48f01c0b9a8"}},{"code_sha256_prefix":"a51741819fc82c72","entry":"MILLETModel","repo":"jaearly/miltimeseriesclassification","repo_kind":"official","path":"millet/model/millet_model.py","file_url":"https://github.com/jaearly/miltimeseriesclassification/blob/HEAD/millet/model/millet_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a51741819fc82c72"}},{"code_sha256_prefix":"c72a6521fa1ce293","entry":"MILTSCDataset","repo":"jaearly/miltimeseriesclassification","repo_kind":"official","path":"millet/model/millet_model.py","file_url":"https://github.com/jaearly/miltimeseriesclassification/blob/HEAD/millet/model/millet_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"c72a6521fa1ce293"}},{"code_sha256_prefix":"72440c23e33b975b","entry":"calculate_aopcr","repo":"jaearly/miltimeseriesclassification","repo_kind":"official","path":"millet/model/millet_model.py","file_url":"https://github.com/jaearly/miltimeseriesclassification/blob/HEAD/millet/model/millet_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"72440c23e33b975b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}