{"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/active-learning-based-species-range-1","title":"Active Learning-Based Species Range Estimation","arxiv_id":"2311.02061","date":"2023-11-03","proceeding":"NeurIPS 2023 11","authors":["Christian Lange","Elijah Cole","Grant van Horn","Oisin Mac Aodha"],"abstract":"We propose a new active learning approach for efficiently estimating the geographic range of a species from a limited number of on the ground observations. We model the range of an unmapped species of interest as the weighted combination of estimated ranges obtained from a set of different species. We show that it is possible to generate this candidate set of ranges by using models that have been trained on large weakly supervised community collected observation data. From this, we develop a new active querying approach that sequentially selects geographic locations to visit that best reduce our uncertainty over an unmapped species' range. We conduct a detailed evaluation of our approach and compare it to existing active learning methods using an evaluation dataset containing expert-derived ranges for one thousand species. Our results demonstrate that our method outperforms alternative active learning methods and approaches the performance of end-to-end trained models, even when only using a fraction of the data. This highlights the utility of active learning via transfer learned spatial representations for species range estimation. It also emphasizes the value of leveraging emerging large-scale crowdsourced datasets, not only for modeling a species' range, but also for actively discovering them.","url_abs":"https://arxiv.org/abs/2311.02061v1","url_pdf":"https://arxiv.org/pdf/2311.02061v1.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":"active-learning-based-species-range-1","repo_url":"https://github.com/chris-lange/sdm_active_sampling","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"active-learning","task_name":"Active Learning"}],"methods":[{"method_slug":"set","method_name":"SET"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2311.02061","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2311.02061"}},"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":"deterministic:regex_extraction","url":"https://github.com/Chris-lange/SDM_active_sampling","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/chris-lange/sdm_active_sampling","reach":{"status":"ok"}}],"summary":{"ran":3,"ran_fixture":5,"ran_honours":1,"ran_draft_wrong":2,"unverified":8},"by_repo_kind":{"official":{"samples":19,"ran":11,"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":19,"samples":[{"code_sha256_prefix":"611957930fc4a66a","entry":"ModelEvaluator","repo":"chris-lange/sdm_active_sampling","repo_kind":"official","path":"active_sampling/active_sampler.py","file_url":"https://github.com/chris-lange/sdm_active_sampling/blob/HEAD/active_sampling/active_sampler.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":"611957930fc4a66a"}},{"code_sha256_prefix":"c2d1bacb305037cd","entry":"UpdateStrategy","repo":"chris-lange/sdm_active_sampling","repo_kind":"official","path":"active_sampling/active_sampler.py","file_url":"https://github.com/chris-lange/sdm_active_sampling/blob/HEAD/active_sampling/active_sampler.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":"c2d1bacb305037cd"}},{"code_sha256_prefix":"5854368cd97b5761","entry":"bilinear_interpolate","repo":"chris-lange/sdm_active_sampling","repo_kind":"official","path":"active_sampling/active_sampler.py","file_url":"https://github.com/chris-lange/sdm_active_sampling/blob/HEAD/active_sampling/active_sampler.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5854368cd97b5761"}},{"code_sha256_prefix":"6bedf0cc608d5cc5","entry":"encode_loc_date","repo":"chris-lange/sdm_active_sampling","repo_kind":"official","path":"active_sampling/active_sampler.py","file_url":"https://github.com/chris-lange/sdm_active_sampling/blob/HEAD/active_sampling/active_sampler.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6bedf0cc608d5cc5"}},{"code_sha256_prefix":"b7d349dfb0d697af","entry":"fourier_encoding","repo":"chris-lange/sdm_active_sampling","repo_kind":"official","path":"active_sampling/active_sampler.py","file_url":"https://github.com/chris-lange/sdm_active_sampling/blob/HEAD/active_sampling/active_sampler.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b7d349dfb0d697af"}},{"code_sha256_prefix":"38015f00b13174e2","entry":"generate_feats_array","repo":"chris-lange/sdm_active_sampling","repo_kind":"official","path":"active_sampling/active_sampler.py","file_url":"https://github.com/chris-lange/sdm_active_sampling/blob/HEAD/active_sampling/active_sampler.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"38015f00b13174e2"}},{"code_sha256_prefix":"d8ffa7dad9ac1374","entry":"generate_input_feats","repo":"chris-lange/sdm_active_sampling","repo_kind":"official","path":"active_sampling/active_sampler.py","file_url":"https://github.com/chris-lange/sdm_active_sampling/blob/HEAD/active_sampling/active_sampler.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d8ffa7dad9ac1374"}},{"code_sha256_prefix":"c77c93c6b217695d","entry":"load_context_feats","repo":"chris-lange/sdm_active_sampling","repo_kind":"official","path":"active_sampling/active_sampler.py","file_url":"https://github.com/chris-lange/sdm_active_sampling/blob/HEAD/active_sampling/active_sampler.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c77c93c6b217695d"}},{"code_sha256_prefix":"95ac0365c2e680e8","entry":"load_taxa_list","repo":"Chris-lange/SDM_active_sampling","repo_kind":"official","path":"active_sampling/active_sampling_utils.py","file_url":"https://github.com/Chris-lange/SDM_active_sampling/blob/HEAD/active_sampling/active_sampling_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":"95ac0365c2e680e8"}},{"code_sha256_prefix":"bfd5b7396d49d603","entry":"mask_to_locations","repo":"chris-lange/sdm_active_sampling","repo_kind":"official","path":"active_sampling/active_sampler.py","file_url":"https://github.com/chris-lange/sdm_active_sampling/blob/HEAD/active_sampling/active_sampler.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"bfd5b7396d49d603"}},{"code_sha256_prefix":"695a208100a98fdc","entry":"modify_model","repo":"chris-lange/sdm_active_sampling","repo_kind":"official","path":"active_sampling/active_sampler.py","file_url":"https://github.com/chris-lange/sdm_active_sampling/blob/HEAD/active_sampling/active_sampler.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"695a208100a98fdc"}},{"code_sha256_prefix":"98649d7072333814","entry":"ActiveSampler","repo":"chris-lange/sdm_active_sampling","repo_kind":"official","path":"active_sampling/active_sampler.py","file_url":"https://github.com/chris-lange/sdm_active_sampling/blob/HEAD/active_sampling/active_sampler.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":"98649d7072333814"}},{"code_sha256_prefix":"c1ca83cb71f27960","entry":"DataManager","repo":"chris-lange/sdm_active_sampling","repo_kind":"official","path":"active_sampling/active_sampler.py","file_url":"https://github.com/chris-lange/sdm_active_sampling/blob/HEAD/active_sampling/active_sampler.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":"c1ca83cb71f27960"}},{"code_sha256_prefix":"8cf78a3a874512ff","entry":"SamplingStrategy","repo":"chris-lange/sdm_active_sampling","repo_kind":"official","path":"active_sampling/active_sampler.py","file_url":"https://github.com/chris-lange/sdm_active_sampling/blob/HEAD/active_sampling/active_sampler.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":"8cf78a3a874512ff"}},{"code_sha256_prefix":"e1f29854df55ad3e","entry":"bilinear_interpolate_numpy","repo":"Chris-lange/SDM_active_sampling","repo_kind":"official","path":"backbone/backbone_utils.py","file_url":"https://github.com/Chris-lange/SDM_active_sampling/blob/HEAD/backbone/backbone_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":"e1f29854df55ad3e"}},{"code_sha256_prefix":"b0df14208e21faad","entry":"load_fcnet","repo":"chris-lange/sdm_active_sampling","repo_kind":"official","path":"active_sampling/active_sampler.py","file_url":"https://github.com/chris-lange/sdm_active_sampling/blob/HEAD/active_sampling/active_sampler.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":"b0df14208e21faad"}},{"code_sha256_prefix":"f73d81e266bbd07a","entry":"load_linearnet","repo":"chris-lange/sdm_active_sampling","repo_kind":"official","path":"active_sampling/active_sampler.py","file_url":"https://github.com/chris-lange/sdm_active_sampling/blob/HEAD/active_sampling/active_sampler.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":"f73d81e266bbd07a"}},{"code_sha256_prefix":"5ab97ad8522ea83e","entry":"load_model","repo":"chris-lange/sdm_active_sampling","repo_kind":"official","path":"active_sampling/active_sampler.py","file_url":"https://github.com/chris-lange/sdm_active_sampling/blob/HEAD/active_sampling/active_sampler.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":"5ab97ad8522ea83e"}},{"code_sha256_prefix":"95b6d404a196c5b9","entry":"select_model","repo":"Chris-lange/SDM_active_sampling","repo_kind":"official","path":"backbone/models.py","file_url":"https://github.com/Chris-lange/SDM_active_sampling/blob/HEAD/backbone/models.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":"95b6d404a196c5b9"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}