{"id":17104525,"url":"https://github.com/emfomy/pass","last_synced_at":"2025-03-23T20:12:42.564Z","repository":{"id":98759477,"uuid":"71544387","full_name":"emfomy/pass","owner":"emfomy","description":"Particle Swarm Stepwise Algorithm (PaSS)","archived":false,"fork":false,"pushed_at":"2019-11-30T08:31:31.000Z","size":7934,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-29T03:35:51.911Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","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/emfomy.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-21T08:11:51.000Z","updated_at":"2019-11-30T08:30:49.000Z","dependencies_parsed_at":"2023-05-01T05:01:33.856Z","dependency_job_id":null,"html_url":"https://github.com/emfomy/pass","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emfomy%2Fpass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emfomy%2Fpass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emfomy%2Fpass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emfomy%2Fpass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emfomy","download_url":"https://codeload.github.com/emfomy/pass/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245162194,"owners_count":20570692,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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-10-14T15:37:09.642Z","updated_at":"2025-03-23T20:12:42.555Z","avatar_url":"https://github.com/emfomy.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Particle Swarm Stepwise (PaSS) Algorithm\n\n### Git\n* https://github.com/emfomy/pass\n\n### Documentation\n* http://emfomy.github.io/pass\n\n### Author\n* Mu Yang \u003cemfomy@gmail.com\u003e\n\n## Programming\n\n### Cluster\n* [IBM® Cognitive Computing Cluster (CCC)](http://ccc.pok.ibm.com/index.html)\n\n### Compiler\n* [GCC 5.1.0](https://gcc.gnu.org/gcc-5/)\n\n### Library\n* [Intel® Math Kernel Library 11.2 Update 3](https://software.intel.com/en-us/intel-mkl)\n* [Open MPI v1.8.4](http://www.open-mpi.org/)\n\n## Directory Structure\n\n| Name         | Detail                                             |\n|--------------|----------------------------------------------------|\n| `src`        | the source files                                   |\n| `src/genlin` | the PaSS algorithm for general linear regression   |\n| `src/genlog` | the PaSS algorithm for general logistic regression |\n| `src/model`  | the model generators                               |\n| `src/data`   | the data loaders                                   |\n| `bin`        | the binary files                                   |\n| `obj`        | the object files                                   |\n| `dep`        | the dependency files                               |\n| `mk`         | the Makefiles                                      |\n| `sh`         | the shell scripts                                  |\n| `dat`        | the data files                                     |\n| `run`        | the working directory                              |\n| `log`        | the log files                                      |\n| `doc`        | the documentation settings                         |\n| `html`       | the html documentation                             |\n\n## Compiling\n\n* Modify `Makefile.inc` to change main program and model.\n* Modify `sh/pass.sh` for job submission.\n\n### Environment Variables\n\nThe following environment variables should be set before compiling.\n\n| Name      | Detail                         | Defalut Value            |\n|-----------|--------------------------------|--------------------------|\n| `MKLROOT` | the root of Intel MKL          |                          |\n| `MKLINC`  | the include directories of MKL | `-I$MKLROOT/include`     |\n| `MKLLIB`  | the library directories of MKL | `-L$MKLROOT/lib/intel64` |\n| `MPIROOT` | the root of Open MPI           |                          |\n| `MPIINC`  | the include directories of MPI | `-I$MPIROOT/include`     |\n| `MPILIB`  | the library directories of MPI | `-L$MPIROOT/lib`         |\n\n### Makefile\n\n| Command      | Detail                |\n|--------------|-----------------------|\n| `make all`   | compile all binaries  |\n| `make doc`   | compile documentation |\n| `make run`   | run demo code         |\n| `make clean` | clean the directory   |\n| `make kill`  | kill all jobs         |\n| `make killf` | force kill all jobs   |\n| `make del`   | delete all jobs       |\n\n## Usage\n\n### The PaSS Algorithm for General Linear Regression\n\n`./bin/genlin [options] ...`\n\n| Option                                 | Detail                                              | Defalut Value |\n|----------------------------------------|-----------------------------------------------------|---------------|\n| `-f \u003cfile\u003e, --file \u003cfile\u003e`             | load data from `\u003cfile\u003e`                             | `genlin.dat`  |\n| `-i ###, --iteration ###`              | the number of iterations                            | `1024`        |\n| `-p ###, --particle ###`               | the number of particles per thread                  | `16`          |\n| `-t ###, --test ###`                   | the number of tests                                 | `100`         |\n| `--brief` (default)                    | switch to brief mode                                |               |\n| `--verbose`                            | switch to verbose mode                              |               |\n| `-h, --help`                           | display help messages                               |               |\n|                                        |                                                     |               |\n| `--prob \u003cpfb\u003e \u003cpfi\u003e \u003cpfr\u003e \u003cpbi\u003e \u003cpbr\u003e` | the probabilities                                   |               |\n| `\u003cpfb\u003e`                                | the probabilities of forward step: best             | `0.1`         |\n| `\u003cpfi\u003e`                                | the probabilities of forward step: improve          | `0.8`         |\n| `\u003cpfr\u003e`                                | the probabilities of forward step: random           | `0.1`         |\n| `\u003cpbi\u003e`                                | the probabilities of backward step: improve         | `0.9`         |\n| `\u003cpbr\u003e`                                | the probabilities of backward step: random          | `0.1`         |\n|                                        |                                                     |               |\n| `--AIC`                                | Akaike information criterion                        |               |\n| `--BIC`                                | Bayesian information criterion                      |               |\n| `--EBIC=\u003cgamma\u003e`                       | Extended Bayesian information criterion             |               |\n| `\u003cgamma\u003e` (optional)                   | the parameter of EBIC                               | `1.0`         |\n| `--HDBIC` (default)                    | High-dimensional Bayesian information criterion     |               |\n| `--HQC`                                | Hannan-Quinn information criterion                  |               |\n| `--HDHQC`                              | High-dimensional Hannan-Quinn information criterion |               |\n\n### The PaSS Algorithm for General Logistic Regression\n\n`./bin/genlog [options] ...`\n\n| Option                                 | Detail                                              | Defalut Value |\n|----------------------------------------|-----------------------------------------------------|---------------|\n| `-f \u003cfile\u003e, --file \u003cfile\u003e`             | load data from `\u003cfile\u003e`                             | `genlog.dat`  |\n| `-i ###, --iteration ###`              | the number of iterations                            | `1024`        |\n| `-p ###, --particle ###`               | the number of particles per thread                  | `16`          |\n| `-t ###, --test ###`                   | the number of tests                                 | `100`         |\n| `--brief` (default)                    | switch to brief mode                                |               |\n| `--verbose`                            | switch to verbose mode                              |               |\n| `-h, --help`                           | display help messages                               |               |\n|                                        |                                                     |               |\n| `--prob \u003cpfb\u003e \u003cpfi\u003e \u003cpfr\u003e \u003cpbi\u003e \u003cpbr\u003e` | the probabilities                                   |               |\n| `\u003cpfb\u003e`                                | the probabilities of forward step: best             | `0.1`         |\n| `\u003cpfi\u003e`                                | the probabilities of forward step: local            | `0.8`         |\n| `\u003cpfr\u003e`                                | the probabilities of forward step: random           | `0.1`         |\n| `\u003cpbi\u003e`                                | the probabilities of backward step: local           | `0.9`         |\n| `\u003cpbr\u003e`                                | the probabilities of backward step: random          | `0.1`         |\n|                                        |                                                     |               |\n| `--AIC`                                | Akaike information criterion                        |               |\n| `--BIC`                                | Bayesian information criterion                      |               |\n| `--EBIC=\u003cgamma\u003e`                       | Extended Bayesian information criterion             |               |\n| `\u003cgamma\u003e` (optional)                   | the parameter of EBIC                               | `1.0`         |\n| `--HDBIC` (default)                    | High-dimensional Bayesian information criterion     |               |\n| `--HQC`                                | Hannan-Quinn information criterion                  |               |\n| `--HDHQC`                              | High-dimensional Hannan-Quinn information criterion |               |\n\n### Create a General Linear Regression Data Using Ing and Lai's Method\n\n`./bin/genlin_inglai [options] ...`\n\n| Option                     | Detail                                              | Defalut Value           |\n|----------------------------|-----------------------------------------------------|-------------------------|\n| `-f \u003cfile\u003e, --file \u003cfile\u003e` | save data into `\u003cfile\u003e`                             | `genlin.dat`            |\n| `-m \u003cname\u003e, --name \u003cname\u003e` | set the data name as `\u003cname\u003e`                       | `General_Linear_IngLai` |\n| `-b \u003cbeta\u003e, --beta \u003cbeta\u003e` | set the effects as `\u003cbeta\u003e`s                        |                         |\n| `-n ###`                   | the number of statistical units                     | `400`                   |\n| `-p ###`                   | the number of total effects                         | `4000`                  |\n| `-r ###`                   | the number of given effects, ignored if `-b` is set | `10`                    |\n| `-h, --help`               | display help messages                               |                         |\n\n### Create a General Linear Regression Data Using Chen and Chen's Method\n\n`./bin/genlin_chenchen [options] ...`\n\n| Option                     | Detail                                               | Defalut Value             |\n|----------------------------|------------------------------------------------------|---------------------------|\n| `-f \u003cfile\u003e, --file \u003cfile\u003e` | save data into `\u003cfile\u003e`                              | `genlin.dat`              |\n| `-m \u003cname\u003e, --name \u003cname\u003e` | set the data name as `\u003cname\u003e`                        | `General_Linear_ChenChen` |\n| `-b \u003cbeta\u003e, --beta \u003cbeta\u003e` | set the effects as `\u003cbeta\u003e`s                         |                           |\n| `-n ###`                   | the number of statistical units                      | `200`                     |\n| `-p ###`                   | the number of total effects                          | `50`                      |\n| `-r ###`                   | the number of given effects, ignored if `-b` is set  | `8`                       |\n| `-t ###, --type ###`       | the type of covariance structure (1~3)               | `3`                       |\n| `-c ###, --cov ###`        | the covariance parameter                             | `0.2`                     |\n| `-h, --help`               | display help messages                                |                           |\n\n### Create a General Logistic Regression Data Using Ing and Lai's Method\n\n`./bin/genlog_inglai [options] ...`\n\n| Option                     | Detail                                              | Defalut Value             |\n|----------------------------|-----------------------------------------------------|---------------------------|\n| `-f \u003cfile\u003e, --file \u003cfile\u003e` | save data into `\u003cfile\u003e`                             | `genlog.dat`              |\n| `-m \u003cname\u003e, --name \u003cname\u003e` | set the data name as `\u003cname\u003e`                       | `General_Logistic_IngLai` |\n| `-b \u003cbeta\u003e, --beta \u003cbeta\u003e` | set the effects as `\u003cbeta\u003e`s                        |                           |\n| `-n ###`                   | the number of statistical units                     | `400`                     |\n| `-p ###`                   | the number of total effects                         | `4000`                    |\n| `-r ###`                   | the number of given effects, ignored if `-b` is set | `10`                      |\n| `-h, --help`               | display help messages                               |                           |\n\n## Data Structure\n\n### .dat files\n\n```\n# 1st  line:  data name\n# 2st  line:  n p\n# 3rd  line:  * J\n# rest lines: Y X\n#\n# X: float matrix, n by p, the regressors\n# Y: float vector, n by 1, the regressand\n# J: bool  vector, 1 by p, the chosen indices\n#\n\u003cdata name\u003e\n\u003cn\u003e \u003cp\u003e\n*     J[0]     J[1]     J[2]     ...\nY[0]  X[0][0]  X[0][1]  X[0][2]  ...\nY[1]  X[1][0]  X[1][1]  X[1][2]  ...\nY[2]  X[2][0]  X[2][1]  X[2][2]  ...\n...\n```\n\nNote that the comment lines should has less than 4096 characters.\n\n## Reference\n* [Mu Yang, Ray-Bing Chen, I-Hsin Chung, Weichung Wang (2016). Particle Swarm Stepwise Algorithm (PaSS) on Multicore Hybrid CPU-GPU Clusters.](https://doi.org/10.1109/CIT.2016.101)\n* [Jiahua Chen, Zehua Chen (2008). Extended Bayesian information criteria for model selection with large model spaces. Biometrika, 95(3), 759–771.](http://www.stat.ubc.ca/~jhchen/paper/Bio08.pdf)\n* [Zhen Liu, Meng Liu (2011). Logistic Regression Parameter Estimation Based on Parallel Matrix Computation. In Q. Zhou (Ed.), Communications in Computer and Information Science (Vol. 164, pp. 268–275). Berlin, Heidelberg: Springer Berlin Heidelberg.](http://doi.org/10.1007/978-3-642-24999-0_38)\n* [Sameer Singh, Jeremy Kubica, Scott Larsen, Daria Sorokina (2013). Parallel Large Scale Feature Selection for Logistic Regression (pp. 1172–1183). Philadelphia, PA: Society for Industrial and Applied Mathematics.](http://doi.org/10.1137/1.9781611972795.100)\n* [Adrian Barbu, Yiyuan She, Liangjing Ding, Gary Gramajo (2014). Feature Selection with Annealing for Big Data Learning.](https://arxiv.org/pdf/1310.2880)\n* [Ching-Kang Ing, Tze Leung Lai (2011). A stepwise regression method and consistent model selection for high-dimensional sparse linear models.](http://doi.org/10.5705/ss.2010.081)\n* [Hung Hung, Yu-Tin Lin, Pengwen Chen, Chen-Chien Wang, Su-Yun Huang, Jung-Ying Tzeng (2013). Detection of Gene-Gene Interactions using Multistage Sparse and Low-Rank Regression.](http://arxiv.org/abs/1304.3769)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femfomy%2Fpass","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femfomy%2Fpass","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femfomy%2Fpass/lists"}