{"id":13801672,"url":"https://github.com/picnicml/doddle-model","last_synced_at":"2026-01-11T17:46:57.148Z","repository":{"id":29900692,"uuid":"120911738","full_name":"picnicml/doddle-model","owner":"picnicml","description":":cake: doddle-model: machine learning in Scala.","archived":false,"fork":false,"pushed_at":"2024-08-13T01:11:34.000Z","size":594,"stargazers_count":137,"open_issues_count":34,"forks_count":23,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-03-02T16:45:24.149Z","etag":null,"topics":["breeze","data-science","doddle-model","machine-learning","scala"],"latest_commit_sha":null,"homepage":"https://picnicml.github.io","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/picnicml.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","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-02-09T13:54:54.000Z","updated_at":"2024-05-23T13:34:04.000Z","dependencies_parsed_at":"2024-08-04T00:17:51.789Z","dependency_job_id":null,"html_url":"https://github.com/picnicml/doddle-model","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/picnicml%2Fdoddle-model","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/picnicml%2Fdoddle-model/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/picnicml%2Fdoddle-model/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/picnicml%2Fdoddle-model/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/picnicml","download_url":"https://codeload.github.com/picnicml/doddle-model/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253932916,"owners_count":21986475,"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":["breeze","data-science","doddle-model","machine-learning","scala"],"created_at":"2024-08-04T00:01:25.680Z","updated_at":"2026-01-11T17:46:57.119Z","avatar_url":"https://github.com/picnicml.png","language":"Scala","readme":"\u003cimg src=\"https://github.com/picnicml/doddle-model/blob/master/.github/doddle-model-header.png\" alt=\"doddle-model\"/\u003e\n\n---\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003cth\u003eLatest Release\u003c/th\u003e\n        \u003cth\u003eBuild Status\u003c/th\u003e\n        \u003cth\u003eCoverage\u003c/th\u003e\n        \u003cth\u003eCode Quality\u003c/th\u003e\n        \u003cth\u003eLicense\u003c/th\u003e\n        \u003cth\u003eChat\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e\n            \u003ca href=\"https://search.maven.org/search?q=g:io.github.picnicml\"\u003e\n                \u003cimg src=\"https://img.shields.io/maven-central/v/io.github.picnicml/doddle-model_2.12.svg?style=flat-square\u0026label=maven%20central\" alt=\"latest release\"/\u003e\n            \u003c/a\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e\n            \u003ca href=\"https://circleci.com/gh/picnicml/doddle-model\"\u003e\n                \u003cimg src=\"https://img.shields.io/circleci/project/github/picnicml/doddle-model/master.svg?style=flat-square\u0026label=circleci\" alt=\"build status\"/\u003e\n            \u003c/a\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e\n            \u003ca href=\"https://app.codacy.com/project/inejc/doddle-model/dashboard\"\u003e\n                \u003cimg src=\"https://img.shields.io/codacy/coverage/9f1dad5c6d6041dd85db71adabba3e72.svg?style=flat-square\u0026label=codacy\" alt=\"coverage\"/\u003e\n            \u003c/a\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e\n            \u003ca href=\"https://app.codacy.com/project/inejc/doddle-model/dashboard\"\u003e\n                \u003cimg src=\"https://img.shields.io/codacy/grade/9f1dad5c6d6041dd85db71adabba3e72/master.svg?style=flat-square\u0026label=codacy\" alt=\"code quality\"/\u003e\n            \u003c/a\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e\n            \u003ca href=\"https://github.com/picnicml/doddle-model/blob/master/LICENSE\"\u003e\n                \u003cimg src=\"https://img.shields.io/github/license/picnicml/doddle-model.svg?style=flat-square\u0026label=picnicml\" alt=\"license\"/\u003e\n            \u003c/a\u003e\n        \u003c/td\u003e\n        \u003ctd\u003e\n            \u003ca href=\"https://gitter.im/picnicml/doddle-model\"\u003e\n                \u003cimg src=\"https://img.shields.io/gitter/room/nwjs/nw.js.svg?style=flat-square\u0026label=picnicml\" alt=\"chat\"/\u003e\n            \u003c/a\u003e\n        \u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n---\n\n`doddle-model` is an in-memory machine learning library that can be summed up with three main characteristics:\n* it is built on top of [Breeze](https://github.com/scalanlp/breeze)\n* it provides [immutable estimators](https://en.wikipedia.org/wiki/Immutable_object) that are a _doddle_ to use in parallel code\n* it exposes its functionality through a [scikit-learn](https://github.com/scikit-learn/scikit-learn)-like API [2] in idiomatic Scala using [typeclasses](https://en.wikipedia.org/wiki/Type_class)\n\n#### How does it compare to existing solutions?\n`doddle-model` takes the position of scikit-learn in Scala and as a consequence, it's much more lightweight than e.g. Spark ML. Fitted models can be deployed anywhere, from simple applications to concurrent, distributed systems built with Akka, Apache Beam or a framework of your choice. Training of estimators happens in-memory, which is advantageous unless you are dealing with enormous datasets that absolutely cannot fit into RAM.\n\n### Installation\nThe project is published for Scala versions 2.11, 2.12 and 2.13. Add the dependency to your SBT project definition:\n```scala\nlibraryDependencies  ++= Seq(\n  \"io.github.picnicml\" %% \"doddle-model\" % \"\u003clatest_version\u003e\",\n  // add optionally to utilize native libraries for a significant performance boost\n  \"org.scalanlp\" %% \"breeze-natives\" % \"1.0\"\n)\n```\nNote that the latest version is displayed in the _Latest Release_ badge above and that the _v_ prefix should be removed from the SBT definition.\n\n### Getting Started\nFor a complete list of code examples see [doddle-model-examples](https://github.com/picnicml/doddle-model-examples).\n\n### Contributing\nWant to help us? :raised_hands: We have a [document](https://github.com/picnicml/doddle-model/blob/master/.github/CONTRIBUTING.md) that will make deciding how to do that much easier.\n\n### Performance\nPerformance of implementations is described [here](https://github.com/picnicml/doddle-model/wiki/Performance). Also, take a peek at what's written in that document if you encounter `java.lang.OutOfMemoryError: Java heap space`.\n\n### Core Maintainers\nThis is a collaborative project which wouldn't be possible without all the [awesome contributors](https://github.com/picnicml/doddle-model/graphs/contributors). The core team currently consists of the following developers:\n- [@inejc](https://github.com/inejc)\n- [@matejklemen](https://github.com/matejklemen)\n\n### Resources\n* [1] [Pattern Recognition and Machine Learning, Christopher Bishop](http://www.springer.com/gp/book/9780387310732)\n* [2] [API design for machine learning software: experiences from the scikit-learn project, L. Buitinck et al.](https://arxiv.org/abs/1309.0238)\n* [3] [UCI Machine Learning Repository. Irvine, CA: University of California, School of Information and Computer Science, Dua, D. and Karra Taniskidou, E.](http://archive.ics.uci.edu/ml)\n","funding_links":[],"categories":["Table of Contents","Scala","Science and Data Analysis"],"sub_categories":["Science and Data Analysis","General-Purpose Machine Learning"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpicnicml%2Fdoddle-model","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpicnicml%2Fdoddle-model","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpicnicml%2Fdoddle-model/lists"}