У нас есть theano и numpy в Python для выполнения символьных и числовых вычислений, оптимизирующих наши вычисления машинного обучения (например, умножение матриц и использование графического процессора). Какие инструменты в Clojure подходят для машинного обучения (или, по крайней мере, для таких вещей, как умножение матриц)?
Машинное обучение в Clojure
Ответы (2)
Важной библиотекой / инструментом для математических операций, статистики и многого другого в Clojure является incanter. Также существует clatrix, обертывающий jBlas для матричных операций.
Что касается машинного обучения в целом, существует как минимум две библиотеки, связывающие / обертывающие Apache Spark, который включает MLlib для машинного обучения: есть искрение и flambo. clj-ml - это, по сути, оболочка вокруг Weka и некоторые дополнения. Наконец, clojure-opennlp - это оболочка для opennlp, набор инструментов NLP, сопоставимый с NLTK в Python.
Этот список инструментов машинного обучения содержит еще несколько ссылок.
Для стороны матрицы / вектора существует 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, что целью является графический процессор , но об этом нет упоминания в документации.
Какая конкретная функциональность вам нужна, поскольку ваш вопрос слишком обширен? Вы что-нибудь пробовали?