{"id":20081022,"url":"https://github.com/kkloste/lemon-sqz","last_synced_at":"2026-02-26T18:10:02.915Z","repository":{"id":71748012,"uuid":"71845576","full_name":"kkloste/lemon-sqz","owner":"kkloste","description":"Toward scalable, robust community detection and other semi-supervised learning tasks","archived":false,"fork":false,"pushed_at":"2016-11-16T05:18:25.000Z","size":6060,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-02T13:27:44.275Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Matlab","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/kkloste.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":"2016-10-25T00:58:37.000Z","updated_at":"2019-01-22T21:51:51.000Z","dependencies_parsed_at":"2023-02-23T20:30:53.019Z","dependency_job_id":null,"html_url":"https://github.com/kkloste/lemon-sqz","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kkloste/lemon-sqz","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kkloste%2Flemon-sqz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kkloste%2Flemon-sqz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kkloste%2Flemon-sqz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kkloste%2Flemon-sqz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kkloste","download_url":"https://codeload.github.com/kkloste/lemon-sqz/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kkloste%2Flemon-sqz/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29867180,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T16:38:37.846Z","status":"ssl_error","status_checked_at":"2026-02-26T16:37:58.932Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":[],"created_at":"2024-11-13T15:33:10.538Z","updated_at":"2026-02-26T18:10:02.896Z","avatar_url":"https://github.com/kkloste.png","language":"Matlab","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LEMON-sqz\n\nPre-processing techniques and algorithms for robust, scalable community detection\n\nTo use codes, first run `compile.m` from project home directory `/`.\nThe LEMON codes require installation of CVX convex optimization software.\nTo check codes are working (and interfacing properly with CVX), after compiling run `run_tests.m` from home directory.\n\n\n## Codes for algorithms\n\n* `lemon_simple.m` MATLAB implementation of our simplified version, LEMONeasy -- using adaptive PPR subgraph extraction, and 3-walk diffusion instead of L1-norm LEMON vector.\n* `lemon_original.m` MATLAB implementation of the original LEMON algorithm, as described in [ Li, He, Bindel, Hopcroft, WWW 2015 ].\n* `MOVgrow.m` and `local_fiedler.m` -- implements the locally biased Fiedler vector from [ Mahoney, Orecchia Vishnoi  JMLR 2012 ].\n* `hkgrow_mex.cpp` and `hkgrow1.m` are adapted from [ Kloster \u0026 Gleich KDD 2014 ]\n\t* compute both the heat kernel diffusion and its set of best conductance.\n* `pprgrow_mex.cc` and `pprgrow.m` are adapted from [ Gleich \u0026 Seshadhri KDD 2012 ]\n\t* adapted to output both the personalized pagerank diffusion and its set of best conductance.\n* `pprvec_mex.cc` and `hkvec_mex.cpp` are the push operations for ppr and hk, stripped down to compute simply a single sparse diffusion vectors (not any community info)\n\n### Our pre-processing techniques\n\n* `subgraph_extraction` -- given input graph and seed, this attempts to extract a medium-sized cluster with high recall. Details discussed in paper.\n* `seed_aug.m` -- given input graph and seed, this attempts to find `k` ground truth nodes related to the seed, with high precision. (`k` is an input parameter, default to 3).\n\n### Utility codes\n\n* `sparse_k_walk.m` -- wrapper for computing (A_bar)^k * seed_vector without having to pre-process the adjacency matrix A to get A_bar.\n* `sweepcut_mex.cpp` and wrapper `sweepcut.m` -- fast implementation of the sweepcut procedure, with options for specifying the range of nodes to be swept over.\n* `cut_cond.m` -- sparse method to obtain conductance and other statistics of an input set of nodes.\n\n## Datasets\n\nSee the paper for sources of the datasets and how they were pre-processed.\n\n* `usps3nn` and `usps10nn` are k-nearest-neighbors graphs constructed from the USPS hand-written digits datasets. These .mat files also contain the ground-truth class label for each node (each node represents an image of a digit, 0 through 9).\n* SNAP datasets:\n\t* `youtube`\n\t* `lj`\n\t* `dblp`\n\t* `amazon`\n\t* `friendster`\n\t* `orkut`\n* `senate_ccs` is a temporal graph of all US senators who served in the first 110 US senates. Every such senator is a single node.\n* `cora_ccs` -- from LINQS. The communities are a partitioning of the 2,708 graph nodes into 7 communities. (We symmetrized the graph and removed self-loops and isolated nodes to get to 2,708.)\n* `citeseer_ccs` -- from LINQS. The communities are a partitioning of the 3,264 graph nodes into 6 communities. (We symmetrized the graph and removed self-loops and isolated nodes to get to 3,264.)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkkloste%2Flemon-sqz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkkloste%2Flemon-sqz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkkloste%2Flemon-sqz/lists"}