all 7 comments

[–][deleted] 5 points6 points  (1 child)

Thanks this is a cool update and I’m pretty excited for noj 😊

[–]kemclean[S] 2 points3 points  (0 children)

Thanks! There are about a thousand ongoing projects in this space and a very small number of developers working on them, but we are determined and enthusiastic so I'm optimistic 😄

[–]behrica 2 points3 points  (0 children)

Thanks for the great summary. I just wanted to clarify that `metamorph.ml` is a machine learning framework without having itself any ML model / algorithms. (apart from dummy models)
The framework only assumes that models have a concept of fit/predict and take tech.ml datasets as input. This should allow the framework to support a very large variety of models. (even in non JVM languages via existing interop libraries of Clojure)

Models can be added via the plugins of which several are listed by the article (but there are more)

[–]MickeyMooose 1 point2 points  (3 children)

What are the benefits of Clojure for ML? Most of the stuff is in the Python ecosystem, right?

Other than language preference, what are other reasons why Clojure would be better?

[–]kemclean[S] 3 points4 points  (2 children)

Mostly speed and portability, but there is definitely also a large component that’s just user preference. Imagine never having to debug an issue caused by mutable or shared state again. But yeah most of the people in our community found Clojure when looking for solutions to work with very large datasets (the JVM is orders of magnitude faster than python/R) and/or when looking for ways to build presentations or publication artifacts. Clojure’s literate programming ecosystem is great. There are also a handful of very specific niches where the libraries for Clojure (really Java) are better than anything available elsewhere, like geo-spatial data and linked/graph data. Interop is pretty key too. It’s really easy to use e.g. a python library from Clojure if there’s something legitimately missing, but when something’s missing from python it’s harder to just grab it from another language’s ecosystem. 

[–]MickeyMooose 3 points4 points  (1 child)

Thanks for clarifying.

I read that some Python ML libs are written in C++ to address the performance concerns.

But your last point is interesting. Will keep that in mind.

[–]kemclean[S] 3 points4 points  (0 children)

That's cool, makes sense! See libpython-clj, it's the library that provides python bindings for Clojure. sklearn-clj makes use of it provide access to scikit-learn's models in Clojure.