All Projects → scicloj → scicloj.ml

scicloj / scicloj.ml

Licence: other
A Clojure machine learning library

Programming Languages

clojure
4091 projects

Projects that are alternatives of or similar to scicloj.ml

Orange3
🍊 📊 💡 Orange: Interactive data analysis
Stars: ✭ 3,152 (+1973.68%)
Mutual labels:  clustering, regression
ml-book
Codice sorgente ed Errata Corrige del mio libro "A tu per tu col Machine Learning"
Stars: ✭ 16 (-89.47%)
Mutual labels:  clustering, regression
Tribuo
Tribuo - A Java machine learning library
Stars: ✭ 882 (+480.26%)
Mutual labels:  clustering, regression
Tensorflow Book
Accompanying source code for Machine Learning with TensorFlow. Refer to the book for step-by-step explanations.
Stars: ✭ 4,448 (+2826.32%)
Mutual labels:  clustering, regression
Machine-Learning-Algorithms
All Machine Learning Algorithms
Stars: ✭ 24 (-84.21%)
Mutual labels:  clustering, regression
Smile
Statistical Machine Intelligence & Learning Engine
Stars: ✭ 5,412 (+3460.53%)
Mutual labels:  clustering, regression
Ml
A high-level machine learning and deep learning library for the PHP language.
Stars: ✭ 1,270 (+735.53%)
Mutual labels:  clustering, regression
Pycaret
An open-source, low-code machine learning library in Python
Stars: ✭ 4,594 (+2922.37%)
Mutual labels:  clustering, regression
Mlr
Machine Learning in R
Stars: ✭ 1,542 (+914.47%)
Mutual labels:  clustering, regression
Neuroflow
Artificial Neural Networks for Scala
Stars: ✭ 105 (-30.92%)
Mutual labels:  clustering, regression
Uci Ml Api
Simple API for UCI Machine Learning Dataset Repository (search, download, analyze)
Stars: ✭ 190 (+25%)
Mutual labels:  clustering, regression
Machine Learning Projects
This repository consists of all my Machine Learning Projects.
Stars: ✭ 135 (-11.18%)
Mutual labels:  clustering, regression
R
All Algorithms implemented in R
Stars: ✭ 294 (+93.42%)
Mutual labels:  clustering, regression
Machine Learning Octave
🤖 MatLab/Octave examples of popular machine learning algorithms with code examples and mathematics being explained
Stars: ✭ 637 (+319.08%)
Mutual labels:  clustering, regression
Alink
Alink is the Machine Learning algorithm platform based on Flink, developed by the PAI team of Alibaba computing platform.
Stars: ✭ 2,936 (+1831.58%)
Mutual labels:  clustering, regression
Mlj.jl
A Julia machine learning framework
Stars: ✭ 982 (+546.05%)
Mutual labels:  clustering, regression
Machine-Learning-Specialization
Project work and Assignments for Machine learning specialization course on Coursera by University of washington
Stars: ✭ 27 (-82.24%)
Mutual labels:  clustering, regression
Python-Machine-Learning-Fundamentals
D-Lab's 6 hour introduction to machine learning in Python. Learn how to perform classification, regression, clustering, and do model selection using scikit-learn and TPOT.
Stars: ✭ 46 (-69.74%)
Mutual labels:  clustering, regression
Machine learning code
机器学习与深度学习算法示例
Stars: ✭ 88 (-42.11%)
Mutual labels:  clustering, regression
Tiny ml
numpy 实现的 周志华《机器学习》书中的算法及其他一些传统机器学习算法
Stars: ✭ 129 (-15.13%)
Mutual labels:  clustering, regression

Clojars Projectcljdoc badge

  • v0.2.2: Gitpod ready-to-code v0.2.2
  • latest snapshot: Gitpod ready-to-code latest-snapshot
  • latest snapshot: Binder

scicloj.ml

A idiomatic Clojure machine learning library.

Main features:

  • Harmonized and idiomatic use of various classification, regression and unsupervised models
  • Supports creation of machine learning pipelines as-data
  • Includes easy-to-use, sophisticated cross-validations of pipelines
  • Includes most important data transformation for data preprocessing
  • Experiment tracking can be added by the user via a callback mechanism
  • Open architecture to allow to plugin any potential ML model, even in non-JVM languages, including deep learning
  • Based on well established Clojure/Java Data Science libraries

Quickstart

Dependencies:

{:deps
 {scicloj/scicloj.ml {:mvn/version "0.2.0"}}}

Code:

(require '[scicloj.ml.core :as ml]
         '[scicloj.ml.metamorph :as mm]
         '[scicloj.ml.dataset :as ds])

;; read train and test datasets
(def titanic-train
  (ds/dataset "https://github.com/scicloj/metamorph-examples/raw/main/data/titanic/train.csv" {:key-fn keyword :parser-fn :string}))

(def titanic-test
  (-> "https://github.com/scicloj/metamorph-examples/raw/main/data/titanic/test.csv"
      (ds/dataset {:key-fn keyword :parser-fn :string})
      (ds/add-column :Survived [""] :cycle)))

;; construct pipeline function including Logistic Regression model
(def pipe-fn
  (ml/pipeline
   (mm/select-columns [:Survived :Pclass ])
   (mm/add-column :Survived (fn [ds] (map #(case % "1" "yes" "0" "no" nil "") (:Survived ds))))
   (mm/categorical->number [:Survived :Pclass])
   (mm/set-inference-target :Survived)
   {:metamorph/id :model}
   (mm/model {:model-type :smile.classification/logistic-regression})))

;;  execute pipeline with train data including model in mode :fit
(def trained-ctx
  (pipe-fn {:metamorph/data titanic-train
            :metamorph/mode :fit}))

;; execute pipeline in mode :transform with test data which will do a prediction 
(def test-ctx
  (pipe-fn
   (assoc trained-ctx
          :metamorph/data titanic-test
          :metamorph/mode :transform)))

;; extract prediction from pipeline function result
(-> test-ctx :metamorph/data
    (ds/column-values->categorical :Survived))
    
;; => #tech.v3.dataset.column<string>[418]
;;    :Survived
;;    [no, no, yes, no, no, no, no, yes, no, no, no, no, no, yes, no, yes, yes, no, no, no...]   
                

Community

For support use Clojurians on Zulip:

Scicloj.ml on Zulip

or on Clojurians Slack:

Scicloj.ml on Slack

Documentation

Full documentation is here as userguides

API documentation: https://scicloj.github.io/scicloj.ml

Reference to projects scicloj.ml is using/based on:

This library itself is a shim, not containing any functions. The code is present in the following repositories, and the functions get re-exported in scicloj.ml in a small number of namespaces for user convenience.

Scicloj.ml organises the existing code in 3 namespaces, as following:

namespace scicloj.ml.core

Functions are re-exported from:

  • scicloj.metamorph.ml.*
  • scicloj.metamorph.core

namespace scicloj.ml.dataset

All functions in this ns take a dataset as first argument. The functions are re-exported from:

  • tabecloth.api
  • tech.v3.dataset.modelling
  • tech.v3.dataset.column-filters

namespace scicloj.ml.metamorph

All functions in this ns take a metamorph context as first argument, so can directly be used in metamorph pipelines. The functions are re-exported from:

  • tablecloth.pipeline
  • tech.v3.libs.smile.metamorph
  • scicloj.metamorph.ml
  • tech.v3.dataset.metamorph

In case you are already familar with any of the original namespaces, they can of course be used directly as well:

(require '[tablecloth.api :as tc])
(tc/add-column ...)

Plugins

scicloj.ml can be easely extended by plugins, which contribute models or other algorithms. By now the following plugins exist:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].