{"id":13413360,"url":"https://github.com/cdipaolo/goml","last_synced_at":"2026-01-17T23:32:39.881Z","repository":{"id":34263419,"uuid":"38148874","full_name":"cdipaolo/goml","owner":"cdipaolo","description":"On-line Machine Learning in Go (and so much more)","archived":false,"fork":false,"pushed_at":"2022-07-15T00:13:54.000Z","size":971,"stargazers_count":1565,"open_issues_count":4,"forks_count":133,"subscribers_count":77,"default_branch":"master","last_synced_at":"2024-10-25T05:23:13.928Z","etag":null,"topics":["machine-learning"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cdipaolo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-27T05:52:01.000Z","updated_at":"2024-10-22T00:43:17.000Z","dependencies_parsed_at":"2022-09-26T17:41:35.652Z","dependency_job_id":null,"html_url":"https://github.com/cdipaolo/goml","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cdipaolo/goml","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdipaolo%2Fgoml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdipaolo%2Fgoml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdipaolo%2Fgoml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdipaolo%2Fgoml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cdipaolo","download_url":"https://codeload.github.com/cdipaolo/goml/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdipaolo%2Fgoml/sbom","scorecard":{"id":269795,"data":{"date":"2025-08-11","repo":{"name":"github.com/cdipaolo/goml","commit":"00e0c845ae1c38c8f9a39e7e6144c44d1dd541a5"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.3,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":5,"reason":"Found 9/18 approved changesets -- score normalized to 5","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":7,"reason":"3 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GO-2021-0113 / GHSA-ppp9-7jff-5vj2","Warn: Project is vulnerable to: GO-2022-1059 / GHSA-69ch-w2m2-3vjp","Warn: Project is vulnerable to: GO-2022-0603 / GHSA-hp87-p4gw-j4gq"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 21 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T13:03:48.887Z","repository_id":34263419,"created_at":"2025-08-17T13:03:48.887Z","updated_at":"2025-08-17T13:03:48.887Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28522307,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T22:11:28.393Z","status":"ssl_error","status_checked_at":"2026-01-17T22:11:27.841Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["machine-learning"],"created_at":"2024-07-30T20:01:38.575Z","updated_at":"2026-01-17T23:32:39.860Z","avatar_url":"https://github.com/cdipaolo.png","language":"Go","readme":"## `goml`\n### Golang Machine Learning, On The Wire\n\n[![GoDoc](https://godoc.org/github.com/cdipaolo/goml?status.svg)](https://godoc.org/github.com/cdipaolo/goml)\n[![wercker status](https://app.wercker.com/status/50a8cfa6170784809e3308941212cef4/s \"wercker status\")](https://app.wercker.com/project/bykey/50a8cfa6170784809e3308941212cef4)\n\n`goml` is a machine learning library written entirely in Golang which lets the average developer include machine learning into their applications. (pronounced like the data format 'toml')\n\nWhile models include traditional, batch learning interfaces, `goml` includes many models which let you learn in an online, reactive manner by passing data to streams held on channels.\n\nThe library includes **comprehensive tests**, **extensive documentation**, and **clean, expressive, modular source code**. Community contribution is heavily encouraged.\n\nEach package (mentioned below) includes individual README's to learn more about the function, and purpose of the models. Above all, if you want to learn about models, read the GoDoc reference for the package. All models are, as mentioned above, heavily documented.\n\n## Installation\n\n```bash\ngo get github.com/cdipaolo/goml/base\n\n# This could be any other model package if you want\n#\n# Also, the base package is imported already\n# by many of the packages so you might not even\n# need to `go get` the package explicitly\ngo get github.com/cdipaolo/goml/perceptron\n```\n\n## Documentation\n\nAll the code is well documented, and the source is/should be really readable if you'd like to make sense of it all! Look at each package (like right now, in GitHub,) and you will see a link to Godoc as well as an explanation of the package and an example usage. You can even click on the main bullets below and it'll take you to those packages. Also you could just use the Godoc link at the top of this README and navigate to the package you'd like to see more about.\n\nSub-bullets below will take you directly to the source code of the model.\n\n## Currently Implemented Models\n\n- [Generalized Linear Models](linear/) (all have stochastic GA, batch GA, and online options except for locally weighted linear regression)\n  * [Ordinary Least Squares](linear/linear.go)\n  * [Locally Weighted Linear Regression](linear/local_linear.go)\n  * [Logistic Regression](linear/logistic.go)\n  * [Softmax (Multiclass Logistic) Regression](linear/softmax.go)\n- [Perceptron](perceptron/) only in online options\n  * [Online, Binary Perceptron](perceptron/perceptron.go)\n  * [Online, Binary Kernel Perceptron](perceptron/kernel_perceptron.go)\n- [Clustering](cluster/)\n  * [K-Means Clustering](cluster/kmeans.go)\n    * Uses k-means++ instantiation for more reliable clusters ([this paper](http://ilpubs.stanford.edu:8090/778/1/2006-13.pdf) discusses the method and it's benefits over regular, random instantiation)\n  \t* Both online and batch versions\n    * Includes a version which uses the [Triangle Inequality](https://en.wikipedia.org/wiki/Triangle_inequality) to dramatically reduce the number of distance calculations at the expense of auxillary data structures, as describes in [this paper](http://www.aaai.org/Papers/ICML/2003/ICML03-022.pdf)\n  * [K-Nearest-Neighbors Clustering](cluster/knn.go)\n  \t* Can use any distance metric, with L-p Norm, Euclidean Distance, and Manhattan Distance pre-defined within the `goml/base` package\n- [Text Classification](text/)\n  * [Multinomial (Multiclass) Text-Based Naive Bayes](text/bayes.go)\n  * [Term Frequency - Inverse Document Frequency](text/tfidf.go)\n    * this lets you find keywords/important words from documents\n    * because it's so similar to Bayes under the hood, you cast a NaiveBayes model to TFIDF to get a model. [Look at these tests to see an example](text/tfidf_test.go)\n\n## Contributing!\n\nsee [CONTRIBUTING](CONTRIBUTING.md).\n\nI'd love help with any of this if anybody thinks that they would like to implement a model that isn't here, or if they have improvements to current models implemented, or if they want to help with documentation (this would be greatly appreciated, believe me, writing great documentation takes time! :+1:)\n\n## LICENSE - MIT\n\nsee [LICENSE](LICENSE)\n","funding_links":[],"categories":["General Machine Learning libraries","开源类库","Machine Learning","Open source library","Go","机器学习","\u003cspan id=\"机器学习-machine-learning\"\u003e机器学习 Machine Learning\u003c/span\u003e","Relational Databases","Golang"],"sub_categories":["Vector Database","机器学习","Advanced Console UIs","Machine Learning","Search and Analytic Databases","Tools","[Tools](#tools-1)","检索及分析资料库","\u003cspan id=\"高级控制台用户界面-advanced-console-uis\"\u003e高级控制台用户界面 Advanced Console UIs\u003c/span\u003e","SQL 查询语句构建库","Sentiment Intensity Analyzer","交流"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdipaolo%2Fgoml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcdipaolo%2Fgoml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdipaolo%2Fgoml/lists"}