{"id":17246006,"url":"https://github.com/vibhujawa/parallel-adaboost","last_synced_at":"2025-06-25T21:35:53.909Z","repository":{"id":80381475,"uuid":"140819830","full_name":"VibhuJawa/parallel-adaboost","owner":"VibhuJawa","description":"The repo contains a multi-core parallel implementation of adaboost algo in C++","archived":false,"fork":false,"pushed_at":"2018-08-10T06:51:27.000Z","size":20333,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-26T05:11:15.107Z","etag":null,"topics":["adaboost","cpp","machine-learning-algorithms"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":false,"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/VibhuJawa.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":"2018-07-13T08:29:13.000Z","updated_at":"2019-05-16T22:54:35.000Z","dependencies_parsed_at":"2023-06-06T17:30:41.170Z","dependency_job_id":null,"html_url":"https://github.com/VibhuJawa/parallel-adaboost","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/VibhuJawa/parallel-adaboost","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VibhuJawa%2Fparallel-adaboost","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VibhuJawa%2Fparallel-adaboost/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VibhuJawa%2Fparallel-adaboost/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VibhuJawa%2Fparallel-adaboost/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VibhuJawa","download_url":"https://codeload.github.com/VibhuJawa/parallel-adaboost/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VibhuJawa%2Fparallel-adaboost/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261958094,"owners_count":23236402,"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":["adaboost","cpp","machine-learning-algorithms"],"created_at":"2024-10-15T06:31:51.508Z","updated_at":"2025-06-25T21:35:53.897Z","avatar_url":"https://github.com/VibhuJawa.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Parallelizing AdaBoost on Multi Core Machines using open MP in C++\n\nAdaBoost, short for Adaptive Boosting, is a type of boosting algorithm which combines several weak classifiers to create one strong classifier. AdaBoosts fundamental nature doesn’t allow for parallelizing finding the weak classifiers, we present a way which helps achieve nearly 22.14x times the speedup compared to a serial implementaiton. In this project, we develop a parallel AdaBoost algorithm that exploits the multiple cores in a CPU via light weight threads. We propose different algorithms for different types of datasets and machines.\n\n\n\n### Prerequisites\n\nPython3: To generate the data set for experimentation\n\nC++ with OpenMP \n\nRefer this for learning more about open mp and multi threading with C++.\nhttps://bisqwit.iki.fi/story/howto/openmp/\n\n\n### Installing\n\n1. Run c++/create_data.sh to create the data set.\n\n2. import the implimentation you like to use \n\nThere are 2 header files (details in report) which you can use:\n\n  * Parallization to find the best feature threhold parallel: [adaboost.h](c++/adaboost.h) \n\n  * Parallization everywhere: [adaboost_best.h](c++/adaboost_best.h)\n      \n      \n```\nTo import simply type:\n\n#include \"adaboost_best.h\"\n\n\nFit function: \nclf.fit(X,labels,t);\n\nPredict function: \nvector\u003cint\u003e predictions = clf.predict(X); \n\nX here is a vector of vectors of dimention n*m, \nwhere n is number of examples and m is number of dimentions.\n\n```\n3. We also time different transposse implimentations in  [c++/time_transpose.cpp](c++/time_transpose.cpp)\n\n4. We also have a python implimentation in [final-adaboost.ipynb](python/final-adaboost.ipynb)\n\n\n### Benchmark of Implimentations:\nProject Report [parallelizing-adaboost.pdf](https://github.com/VibhuJawa/parallel-adaboost/blob/master/parallelizing-adaboost.pdf)\n\n### Scope for improvement:\n\nChange the naive formula used in  error rate to the optimized one (with weight rescaling) mentioned in MIT video\n\n\n## Authors\n* **Vibhu Jawa** [Vibhu Jawa](https://github.com/VibhuJawa)\n* **Praateek  Mahajan** [Praateek  Mahajan](https://github.com/praateekmahajan)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvibhujawa%2Fparallel-adaboost","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvibhujawa%2Fparallel-adaboost","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvibhujawa%2Fparallel-adaboost/lists"}