{"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/ian-iterated-adaptive-neighborhoods-for","title":"IAN: Iterated Adaptive Neighborhoods for manifold learning and dimensionality estimation","arxiv_id":"2208.09123","date":"2022-08-19","proceeding":null,"authors":["Luciano Dyballa","Steven W. Zucker"],"abstract":"Invoking the manifold assumption in machine learning requires knowledge of the manifold's geometry and dimension, and theory dictates how many samples are required. However, in applications data are limited, sampling may not be uniform, and manifold properties are unknown and (possibly) non-pure; this implies that neighborhoods must adapt to the local structure. We introduce an algorithm for inferring adaptive neighborhoods for data given by a similarity kernel. Starting with a locally-conservative neighborhood (Gabriel) graph, we sparsify it iteratively according to a weighted counterpart. In each step, a linear program yields minimal neighborhoods globally and a volumetric statistic reveals neighbor outliers likely to violate manifold geometry. We apply our adaptive neighborhoods to non-linear dimensionality reduction, geodesic computation and dimension estimation. A comparison against standard algorithms using, e.g., k-nearest neighbors, demonstrates their usefulness. Code for our algorithm will be available at https://github.com/dyballa/IAN","url_abs":"https://arxiv.org/abs/2208.09123v3","url_pdf":"https://arxiv.org/pdf/2208.09123v3.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":"ian-iterated-adaptive-neighborhoods-for","repo_url":"https://github.com/dyballa/ian","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"tasks":[{"task_slug":"dimensionality-reduction","task_name":"Dimensionality Reduction"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2208.09123","atlas_url":"https://app.syntology.ai/?focus=2208.09123","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2208.09123"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/dyballa/ian","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"summary":{"ran":10,"unverified":2},"by_repo_kind":{"official":{"samples":12,"ran":10,"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":"2fefda71cf8661c2","entry":"computeIsomap","repo":"dyballa/ian","repo_kind":"official","path":"ian/embed_utils.py","file_url":"https://github.com/dyballa/ian/blob/HEAD/ian/embed_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"2fefda71cf8661c2"}},{"code_sha256_prefix":"fdd9af6c57e502fa","entry":"computeMutualAdjacencyMatrix","repo":"dyballa/ian","repo_kind":"official","path":"ian/ian.py","file_url":"https://github.com/dyballa/ian/blob/HEAD/ian/ian.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"fdd9af6c57e502fa"}},{"code_sha256_prefix":"2ed344a806ffec7d","entry":"computeSparseGabriel","repo":"dyballa/ian","repo_kind":"official","path":"ian/ian.py","file_url":"https://github.com/dyballa/ian/blob/HEAD/ian/ian.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"2ed344a806ffec7d"}},{"code_sha256_prefix":"9dd9fa49ae6ab154","entry":"diffusionMapFromK","repo":"dyballa/ian","repo_kind":"official","path":"ian/embed_utils.py","file_url":"https://github.com/dyballa/ian/blob/HEAD/ian/embed_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"9dd9fa49ae6ab154"}},{"code_sha256_prefix":"480036e972bbd8fa","entry":"diffusionMapSparseK","repo":"dyballa/ian","repo_kind":"official","path":"ian/embed_utils.py","file_url":"https://github.com/dyballa/ian/blob/HEAD/ian/embed_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"480036e972bbd8fa"}},{"code_sha256_prefix":"a2a0c1d30c270b38","entry":"getSparseMultiScaleK","repo":"dyballa/ian","repo_kind":"official","path":"ian/ian.py","file_url":"https://github.com/dyballa/ian/blob/HEAD/ian/ian.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"a2a0c1d30c270b38"}},{"code_sha256_prefix":"259b6299bd7c2660","entry":"getTri","repo":"dyballa/ian","repo_kind":"official","path":"ian/utils.py","file_url":"https://github.com/dyballa/ian/blob/HEAD/ian/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"259b6299bd7c2660"}},{"code_sha256_prefix":"0e91f8ea9b4b0e63","entry":"my_kendalltau","repo":"dyballa/ian","repo_kind":"official","path":"ian/utils.py","file_url":"https://github.com/dyballa/ian/blob/HEAD/ian/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"0e91f8ea9b4b0e63"}},{"code_sha256_prefix":"43c5a5c9ee40c0e6","entry":"plot2dScatter","repo":"dyballa/ian","repo_kind":"official","path":"ian/dset_utils.py","file_url":"https://github.com/dyballa/ian/blob/HEAD/ian/dset_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"43c5a5c9ee40c0e6"}},{"code_sha256_prefix":"a7d98dad875de668","entry":"subps","repo":"dyballa/ian","repo_kind":"official","path":"ian/utils.py","file_url":"https://github.com/dyballa/ian/blob/HEAD/ian/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"a7d98dad875de668"}},{"code_sha256_prefix":"d433545bf967db52","entry":"clipped_cmap","repo":"dyballa/ian","repo_kind":"official","path":"ian/dset_utils.py","file_url":"https://github.com/dyballa/ian/blob/HEAD/ian/dset_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"d433545bf967db52"}},{"code_sha256_prefix":"e8225a7b1da1cfbe","entry":"plot3dScatter","repo":"dyballa/ian","repo_kind":"official","path":"ian/dset_utils.py","file_url":"https://github.com/dyballa/ian/blob/HEAD/ian/dset_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"e8225a7b1da1cfbe"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}