{"id":18549365,"url":"https://github.com/lopez86/rust-mlearn","last_synced_at":"2025-05-15T09:12:34.435Z","repository":{"id":161776539,"uuid":"230690390","full_name":"lopez86/rust-mlearn","owner":"lopez86","description":"Machine Learning Tools in Rust","archived":false,"fork":false,"pushed_at":"2020-01-05T18:27:56.000Z","size":39,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-26T07:29:17.110Z","etag":null,"topics":["data-analysis","data-science","machine-learning","rust"],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/lopez86.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":"2019-12-29T01:56:54.000Z","updated_at":"2020-01-05T18:27:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"efb04aaa-06bc-415b-9bb5-a9755102f783","html_url":"https://github.com/lopez86/rust-mlearn","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lopez86%2Frust-mlearn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lopez86%2Frust-mlearn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lopez86%2Frust-mlearn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lopez86%2Frust-mlearn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lopez86","download_url":"https://codeload.github.com/lopez86/rust-mlearn/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239269808,"owners_count":19610870,"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":["data-analysis","data-science","machine-learning","rust"],"created_at":"2024-11-06T20:38:46.591Z","updated_at":"2025-02-17T10:14:55.234Z","avatar_url":"https://github.com/lopez86.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rust-mlearn\nMachine Learning Tools in Rust\n\n## Introduction\nThis package is meant to provide some machine learning models and tools for the Rust language,\ncurrently using the ndarray package as a matrix and linear algebra backend.\n\nCurrently most of these tasks are done using Python with C, C++, and/or Cython packages for the computationally-intensive parts.\nThere is limited support for machine learning in Rust, so this package will include various basic models. It is not intended to \nbe as flexible as something like tensorflow but instead I hope to define better APIs and some native implementations of some of\nthe more common models.\n\nThis package is also intentionally not using a scikit-learn derived interface for models. Instead, the preferred treatment is to \nbuild a model from a factory class or function. Models can do transformations and predictions but training and initialization\ncode should be separated from the models to avoid some of the problems seen in sklearn (such as there being a number of different\nlinear regression models with different training algorithms).\n\nI am also just starting to learn Rust, so it's likely that some design choices can be improved to match the correct style for the\nlanguage. Feel free to comment.\n\n## Current Features\n\n* Linear regression with a matrix inversion (Newton's method) solver and optional L2 regularization\n* Logistic regression with a naive Newton's method solver and optional L2 regularization\n* A couple basic evaluation metrics\n\n\n## TODOs\n\nThere are lots of things to do before releasing this, including\n* Settle on a good high level API\n* Add in more optimization methods - gradient descent, SGD, different Newton's method variants, simulated annealing\n  * Can we make use of 3rd party C/Fortran optimization packages to not have to code everything from scratch?\n* Figure out better initialization schemes - randomized methods, maybe some MCMC to walk through parameter space \n* Add in more models - some tractable ones could be some basic Naive Bayes models, linear or quadratic discriminants, linear SVC, basic decision trees\n* Add in more traits: multi-valued regression, multilabel classification, transformers\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flopez86%2Frust-mlearn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flopez86%2Frust-mlearn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flopez86%2Frust-mlearn/lists"}