{"id":16981028,"url":"https://github.com/dan-tan/iterative-label-spreading","last_synced_at":"2026-05-18T00:35:46.649Z","repository":{"id":178069328,"uuid":"577643237","full_name":"Dan-Tan/Iterative-Label-Spreading","owner":"Dan-Tan","description":"This is an implementation of a semi-supervised/unsupervised clustering method called Iterative Label Spreading. The main algorithm is written in c, and wrapped in cython for use in python. The algorithm is presented in the following paper by Amanda J. Parker and Amanda S. Barnard.","archived":false,"fork":false,"pushed_at":"2023-07-16T09:21:56.000Z","size":10444,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-21T23:30:07.707Z","etag":null,"topics":["c","cython-wrapper","python","semi-supervised-learning","unsupervised-learning"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dan-Tan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-13T07:43:51.000Z","updated_at":"2024-12-30T10:29:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"adc911fd-1b3b-4d6e-855a-4ef5d40321d9","html_url":"https://github.com/Dan-Tan/Iterative-Label-Spreading","commit_stats":{"total_commits":20,"total_committers":2,"mean_commits":10.0,"dds":"0.050000000000000044","last_synced_commit":"f809f962bda1752eaf3597e692f135893c4496ef"},"previous_names":["dan-tan/iterative-label-spreading"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/Dan-Tan/Iterative-Label-Spreading","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dan-Tan%2FIterative-Label-Spreading","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dan-Tan%2FIterative-Label-Spreading/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dan-Tan%2FIterative-Label-Spreading/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dan-Tan%2FIterative-Label-Spreading/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dan-Tan","download_url":"https://codeload.github.com/Dan-Tan/Iterative-Label-Spreading/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dan-Tan%2FIterative-Label-Spreading/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33160533,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T22:39:12.733Z","status":"ssl_error","status_checked_at":"2026-05-17T22:39:10.741Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","cython-wrapper","python","semi-supervised-learning","unsupervised-learning"],"created_at":"2024-10-14T02:04:28.857Z","updated_at":"2026-05-18T00:35:46.631Z","avatar_url":"https://github.com/Dan-Tan.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# iterLS: An Implementation of Iterative Label Spreading\n\nThis is an implementation of a semi-supervised/unsupervised clustering method called Iterative Label Spreading. The main algorithm is written in c, and wrapped in cython for use in python. The algorithm is presented in the following paper by Amanda J. Parker and Amanda S. Barnard. \n\n\"Selecting Appropriate Clustering Methods for Materials Science Applications of Machine Learning\". Published 09/10/2019. \nDOI:  https://doi.org/10.1002/adts.201900145\n\nTo use the algorithm, I recommend reading the paper first as it describes how to use Iterative Label Spreading. Use cases go beyond simple clustering such as evaluating performance of a given clustering on a data set. \n\nThe current implementation is very minimal, providing methods and variables that should allow the user, with plotting techniques, to use Iterative Label Spreading effectively. Plotting techniques and suggested segmentation is on my todo list. Currently, I have not rigoroursly tested edge cases, feel free to raise an issue or pull request.\n\n## Installation\n\n```bash\ngit clone git+https://github.com/Dan-Tan/Iterative-Label-Spreading.git\ncd Iterative-Label-Spreading\npip install .\n```\n\n## Usage\n\nFor more examples with plots see [notebooks](https://github.com/Dan-Tan/Iterative-Label-Spreading/blob/master/notebooks/Example_Usage.ipynb)\n\n```python\nfrom iterLS import ILS\n\ndata_set # 2-D numpy array of shape (n_points, dimensions)\n\nexample_ILS = ILS()\nexample_ILS.label_spreading(data_set)\n\nsegmentation_indices = [...] # pass in indices you wish to segment rmin \nindices, labels = example_ILS.segmentation(segmentation_indices)\n\nexample_ILS.label_spreading(data_set, indices, labels) # final label Spreading\n\nexample_ILS.labels # final label result for entire dataset\nexample_ILS.rmin # list of distances returned from label spreading\n```\n\nIf you have any issues with install feel free to raise and issue.\n\n## Todo:\n\n* Add tests\n* Document code\n* Add additional plotting methods to aid with viewing results, segmentation and general QOL\n* Implementation reliable auto-segmentation method\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdan-tan%2Fiterative-label-spreading","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdan-tan%2Fiterative-label-spreading","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdan-tan%2Fiterative-label-spreading/lists"}