{"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/correcting-for-interloper-contamination-in","title":"Correcting for interloper contamination in the power spectrum with neural networks","arxiv_id":"2504.06919","date":"2025-04-09","proceeding":null,"authors":["Marina S. Cagliari","Azadeh Moradinezhad Dizgah","Francisco Villaescusa-Navarro"],"abstract":"Modern slitless spectroscopic surveys, such as Euclid and the Roman Space Telescope, collect vast numbers of galaxy spectra but suffer from low signal-to-noise ratios. This often leads to incorrect redshift assignments when relying on a single emission line, due to noise spikes or contamination from non-target emission lines, commonly referred to as redshift interlopers. We propose a machine learning approach to correct the impact of interlopers at the level of measured summary statistics, focusing on the power spectrum monopole and line interlopers as a proof of concept. To model interloper effects, we use halo catalogs from the Quijote simulations as proxies for galaxies, displacing a fraction of halos by the distance corresponding to the redshift offset between target and interloper galaxies. This yields contaminated catalogs with varying interloper fractions across a wide range of cosmologies from the Quijote suite. We train a neural network on the power spectrum monopole, alone or combined with the bispectrum monopole, from contaminated mocks to estimate the interloper fraction and reconstruct the cleaned power spectrum. We evaluate performance in two settings: one with fixed cosmology and another where cosmological parameters vary under broad priors. In the fixed case, the network recovers the interloper fraction and corrects the power spectrum to better than 1% accuracy. When cosmology varies, performance degrades, but adding bispectrum information significantly improves results, reducing the interloper fraction error by 40-60%. We also study the method's performance as a function of the size of the training set and find that optimal strategies depend on the correlation between target and interloper samples: bispectrum information aids performance when target and interloper galaxies are uncorrelated, while tighter priors are more effective when the two are strongly correlated.","url_abs":"https://arxiv.org/abs/2504.06919v1","url_pdf":"https://arxiv.org/pdf/2504.06919v1.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":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"correcting-for-interloper-contamination-in","repo_url":"https://github.com/mcagliari/nointernet","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2504.06919","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2504.06919"}},"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/mcagliari/nointernet","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":9},"by_repo_kind":{"official":{"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":0,"samples":[{"code_sha256_prefix":"5344ecff122e916f","entry":"fraction_type","repo":"mcagliari/nointernet","repo_kind":"official","path":"src/catalogs-stats/Bk_displace_all.py","file_url":"https://github.com/mcagliari/nointernet/blob/HEAD/src/catalogs-stats/Bk_displace_all.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5344ecff122e916f"}},{"code_sha256_prefix":"e58b823ec81527fc","entry":"load_PBf","repo":"mcagliari/nointernet","repo_kind":"official","path":"src/training/NoInterNet_fraction_model.py","file_url":"https://github.com/mcagliari/nointernet/blob/HEAD/src/training/NoInterNet_fraction_model.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e58b823ec81527fc"}},{"code_sha256_prefix":"941bec4e290a0062","entry":"load_Pk","repo":"mcagliari/nointernet","repo_kind":"official","path":"src/training/NoInterNet_model.py","file_url":"https://github.com/mcagliari/nointernet/blob/HEAD/src/training/NoInterNet_model.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"941bec4e290a0062"}},{"code_sha256_prefix":"8c992876dbb3274d","entry":"load_Pkf","repo":"mcagliari/nointernet","repo_kind":"official","path":"src/training/NoInterNet_fraction_model.py","file_url":"https://github.com/mcagliari/nointernet/blob/HEAD/src/training/NoInterNet_fraction_model.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8c992876dbb3274d"}},{"code_sha256_prefix":"feae8ae6a4180723","entry":"load_Pkf_feat","repo":"mcagliari/nointernet","repo_kind":"official","path":"src/training/NoInterNet_fraction_model.py","file_url":"https://github.com/mcagliari/nointernet/blob/HEAD/src/training/NoInterNet_fraction_model.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"feae8ae6a4180723"}},{"code_sha256_prefix":"52519005744904b3","entry":"normalize_02","repo":"mcagliari/nointernet","repo_kind":"official","path":"src/training/NoInterNet_model.py","file_url":"https://github.com/mcagliari/nointernet/blob/HEAD/src/training/NoInterNet_model.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"52519005744904b3"}},{"code_sha256_prefix":"301ad3e3f1cf155b","entry":"normalize_Pk","repo":"mcagliari/nointernet","repo_kind":"official","path":"src/training/NoInterNet_model.py","file_url":"https://github.com/mcagliari/nointernet/blob/HEAD/src/training/NoInterNet_model.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"301ad3e3f1cf155b"}},{"code_sha256_prefix":"1a265dffcebeaf86","entry":"objective","repo":"mcagliari/nointernet","repo_kind":"official","path":"src/training/NoInterNet_hyper_optimization.py","file_url":"https://github.com/mcagliari/nointernet/blob/HEAD/src/training/NoInterNet_hyper_optimization.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1a265dffcebeaf86"}},{"code_sha256_prefix":"1cae86a8911fca0a","entry":"objective","repo":"mcagliari/nointernet","repo_kind":"official","path":"src/training/NoInterNet_hyper_optimization_PB.py","file_url":"https://github.com/mcagliari/nointernet/blob/HEAD/src/training/NoInterNet_hyper_optimization_PB.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1cae86a8911fca0a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}