Машинное обучение в Clojure

У нас есть theano и numpy в Python для выполнения символьных и числовых вычислений, оптимизирующих наши вычисления машинного обучения (например, умножение матриц и использование графического процессора). Какие инструменты в Clojure подходят для машинного обучения (или, по крайней мере, для таких вещей, как умножение матриц)?


person fyquah95    schedule 15.06.2015    source источник


Ответы (2)


Важной библиотекой / инструментом для математических операций, статистики и многого другого в Clojure является incanter. Также существует clatrix, обертывающий jBlas для матричных операций.

Что касается машинного обучения в целом, существует как минимум две библиотеки, связывающие / обертывающие Apache Spark, который включает MLlib для машинного обучения: есть искрение и flambo. clj-ml - это, по сути, оболочка вокруг Weka и некоторые дополнения. Наконец, clojure-opennlp - это оболочка для opennlp, набор инструментов NLP, сопоставимый с NLTK в Python.

Этот список инструментов машинного обучения содержит еще несколько ссылок.

person schaueho    schedule 16.06.2015

Для стороны матрицы / вектора существует core.matrix, которая представляет собой подключаемую библиотеку с реализацией по адресу < href = "https://github.com/mikera/vectorz-clj" rel = "nofollow noreferrer"> _ 2_, который активно разрабатывается, и существуют другие высокопроизводительные библиотеки. Использование из ридми:

(def M (matrix [[1 2] [3 4]]))
(def v (matrix [1 2]))
(mul M v)
=> #<Matrix22 [[1.0,4.0],[3.0,8.0]]>

«Наставник» проекта упомянул в ответе на этот вопрос SO, что целью является графический процессор , но об этом нет упоминания в документации.

Какая конкретная функциональность вам нужна, поскольку ваш вопрос слишком обширен? Вы что-нибудь пробовали?

person Mark Fisher    schedule 15.06.2015
comment
В основном то, что позволяет эффективно выполнять числовые операции (как если бы я использовал Octave / Matlab). core.matrix - это определенно то, что я ищу. Спасибо! - person fyquah95; 16.06.2015