{"id":28471601,"url":"https://github.com/openml/randombot","last_synced_at":"2025-08-23T14:34:39.724Z","repository":{"id":66771330,"uuid":"68373071","full_name":"openml/randomBot","owner":"openml","description":"Random hyper-parameter sweep over OpenML tasks","archived":false,"fork":false,"pushed_at":"2016-09-21T18:25:54.000Z","size":8,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-07-01T22:36:07.891Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"R","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/openml.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}},"created_at":"2016-09-16T11:05:44.000Z","updated_at":"2018-04-03T08:54:55.000Z","dependencies_parsed_at":"2023-02-22T04:45:54.225Z","dependency_job_id":null,"html_url":"https://github.com/openml/randomBot","commit_stats":{"total_commits":2,"total_committers":1,"mean_commits":2.0,"dds":0.0,"last_synced_commit":"f54af7af1da6f4d25e367794a4b1d36296063198"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/openml/randomBot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openml%2FrandomBot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openml%2FrandomBot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openml%2FrandomBot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openml%2FrandomBot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openml","download_url":"https://codeload.github.com/openml/randomBot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openml%2FrandomBot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271752125,"owners_count":24814750,"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","status":"online","status_checked_at":"2025-08-23T02:00:09.327Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2025-06-07T11:08:02.179Z","updated_at":"2025-08-23T14:34:39.695Z","avatar_url":"https://github.com/openml.png","language":"R","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RandomBot\n\n'RandomBot' is a program that searches randomly the hyper-parameter space from different Machine Learning (ML) algorithms, sampling different hyper-parameter settings via hyper-parameter sweep. It executes pre-defined 'mlr' [1] learners over OpenML [2] classification problems using the 'BatchExperiments' package [3] structure.\n\nFor each pair of ```{task, algorithm}```, the bot will start **N** new jobs with random different hper-parameter settings. The budget *N* is defined as ```N = 100 * D``` , where *D* denotes the number of parameters in that algorithm's space, and *100* is the tuning constant (defined empirically). \n\n### Technical Requirements\n\n* R version \u003e= 3.1.0\n* Required packages: [mlr](https://cran.r-project.org/web/packages/mlr/index.html), [OpenML](https://github.com/openml/openml-r), [BatchExperiments](https://github.com/tudo-r/BatchExperiments), [checkmate](https://cran.r-project.org/web/packages/checkmate/index.html)\n\n### Setup\n\nTo install all of the required R packages run the ```setup.R```file:\n\n* inside R: \n```R \nsource(\"setup.R\")\n```\n* outside R:\n```\nR CMD BATCH --no-save --no-restore setup.R \u0026\n``` \n\n### Running the code\n\nTo run the project, please, call it by the bash file executing it by the command:\n```\n./runRandomBot.sh \u0026\n```\n\nIt will start the execution saving the status in an output log file. You can follow the execution and errors checking directly this log file. If you want to run experiments directly through the R script, you can call the command:\n```\nR CMD BATCH --no-save --no-restore mainRandomBot.R out_random.log \u0026\n```\n\n### How it works?\n\nThe bot will load all the [OpenML](http://www.openml.org/) tasks defined by the user via ids (task) in the ```mainRandomBor.R``` script, and all the [mlr](https://github.com/mlr-org/mlr) learners defined in the configuration file (algo). After that, an experiment registry is created using the 'BatchExperiments' package: one single independent job for each combination of ```j = {algo, task, params}```. They will start in parallel and results will be saved in the '*randomBot-files*' directory (the registry's main folder). You have an example of application in the ```testingScript.R``` file.\n\nTo check the experiment's status you can start a new R session from the project's folder and use the commands:\n```R\nlibrary(\"BatchExperiments\")\nshowStatus(loadRegistry(\"randomBot-files/\"))\n```\nIt will show you the experiment's status as detailed in the 'BatchExperiments' documentation.\n\nEventually, you may need to restart the experiments. So, if you want to resubmit the jobs without creating them again, we defined a bash file to resubmit the unfinished ones. You just need to execute it by the command: \n\n```\n./resubmitJobs.sh \u0026\n```\n\nFinally, to summarize the hyper-parameters' values searched and their performances, you can bind all of the results calling the commands:\n```R\n# Reducing kknn results as an example\ndevtools::load_all()\nreducingResultsByLearner(reg = loadRegistry(\"randomBot-files/\"), lrn = \"classif.kknn\") \n```\nit will create an ```output```folder with two files for each learner: a *\u003clearner\u003e.RData* and a *\u003clearner\u003e.csv*. They contained the hyper-space searched during the executions.\n\n\n### Contact\n\nRafael Gomes Mantovani (rgmantovani@gmail.com) University of São Paulo - São Carlos, Brazil.\n\n### References\n\n[1] Bernd Bischl, Michel Lang, Lars Kotthoff, Julia Schiffner, Jakob Richter, Zachary Jones, Giuseppe Casalicchio. mlr: Machine Learning in R, R package version 2.9. URL https://github.com/mlr-org/mlr.\n\n[2] J. Vanschoren,  J.N. van Rijn, B. Bischl, and L. Torgo (2014). Openml: Networked  science  in  machine  learning. SIGKDD  Explor.  Newsl.,vol. 15, no. 2, pp. 49–60.\n\n[3] Bernd Bischl, Michel Lang, Olaf Mersmann, Joerg Rahnenfuehrer, Claus Weihs (2015). BatchJobs and BatchExperiments: Abstraction Mechanisms for Using R in Batch Environments. Journal of Statistical Software, 64(11), 1-25. URL http://www.jstatsoft.org/v64/i11/.\n\n### Citation\n\nIf you use our code/experiments in your research, please, cite [our paper]() where this project was first used:\n\n[ADD citation]\n\n### Bibtex \n\n[ADD bibtex entry]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenml%2Frandombot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenml%2Frandombot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenml%2Frandombot/lists"}