{"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/a-flexible-em-like-clustering-algorithm-for","title":"A flexible EM-like clustering algorithm for noisy data","arxiv_id":"1907.01660","date":"2019-07-02","proceeding":null,"authors":["Violeta Roizman","Matthieu Jonckheere","Frédéric Pascal"],"abstract":"Though very popular, it is well known that the EM for GMM algorithm suffers from non-Gaussian distribution shapes, outliers and high-dimensionality. In this paper, we design a new robust clustering algorithm that can efficiently deal with noise and outliers in diverse data sets. As an EM-like algorithm, it is based on both estimations of clusters centers and covariances. In addition, using a semi-parametric paradigm, the method estimates an unknown scale parameter per data-point. This allows the algorithm to accommodate for heavier tails distributions and outliers without significantly loosing efficiency in various classical scenarios. We first derive and analyze the proposed algorithm in the context of elliptical distributions, showing in particular important insensitivity properties to the underlying data distributions. We then study the convergence and accuracy of the algorithm by considering first synthetic data. Then, we show that the proposed algorithm outperforms other classical unsupervised methods of the literature such as k-means, the EM for Gaussian mixture models and its recent modifications or spectral clustering when applied to real data sets as MNIST, NORB, and 20newsgroups.","url_abs":"https://arxiv.org/abs/1907.01660v4","url_pdf":"https://arxiv.org/pdf/1907.01660v4.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":"a-flexible-em-like-clustering-algorithm-for","repo_url":"https://github.com/violetr/fem","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"a-flexible-em-like-clustering-algorithm-for","repo_url":"https://github.com/fmouret/flexible_em_imputation","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null}],"tasks":[{"task_slug":"clustering","task_name":"Clustering"}],"methods":[{"method_slug":"spectral-clustering","method_name":"Spectral Clustering"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1907.01660","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1907.01660"}},"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/violetr/fem","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/fmouret/flexible_em_imputation","reach":null}],"summary":{"ran_violates":1,"ran_honours":1,"ran_fixture":1,"unverified":2},"by_repo_kind":{"official":{"samples":1,"ran":0,"repositories":1},"listed":{"samples":4,"ran":3,"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":"47746af9109c6fa2","entry":"compute_bic","repo":"fmouret/flexible_em_imputation","repo_kind":"listed","path":"FEM/_fem_missing_data_vstable.py","file_url":"https://github.com/fmouret/flexible_em_imputation/blob/HEAD/FEM/_fem_missing_data_vstable.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"47746af9109c6fa2"}},{"code_sha256_prefix":"0070e6dcd62999ba","entry":"generate_synthetic_dataset","repo":"fmouret/flexible_em_imputation","repo_kind":"listed","path":"FEM/run_minimal_example_fem.py","file_url":"https://github.com/fmouret/flexible_em_imputation/blob/HEAD/FEM/run_minimal_example_fem.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"0070e6dcd62999ba"}},{"code_sha256_prefix":"a5dd9bef5154ffd4","entry":"multivariate_t_rvs","repo":"fmouret/flexible_em_imputation","repo_kind":"listed","path":"FEM/run_minimal_example_fem.py","file_url":"https://github.com/fmouret/flexible_em_imputation/blob/HEAD/FEM/run_minimal_example_fem.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"a5dd9bef5154ffd4"}},{"code_sha256_prefix":"955dc3a9f5df543a","entry":"HDDA_regularization","repo":"fmouret/flexible_em_imputation","repo_kind":"listed","path":"FEM/_fem_missing_data_vstable.py","file_url":"https://github.com/fmouret/flexible_em_imputation/blob/HEAD/FEM/_fem_missing_data_vstable.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":"955dc3a9f5df543a"}},{"code_sha256_prefix":"a0c34fc5995e5035","entry":"import_subset","repo":"violetr/fem","repo_kind":"official","path":"python/import_subset_datasets.py","file_url":"https://github.com/violetr/fem/blob/HEAD/python/import_subset_datasets.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":"a0c34fc5995e5035"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}