There is definitely an established machine learning ecosystem, or, perhaps more accurately, a small set of established machine learning ecosystems. For research it would seem that the undisputed champion of machine learning ecosystems is centered on Python and its many libraries which support the data preparation and subsequent machine learning process itself, whether it be via scikit-learn, one of the many deep learning libraries available, or home-spun and highly specialized tools for achieving the same goals. This says nothing of the great support tools that grow up around the edges of the ecosystem, some of which become polished and useful enough to carve out their own eventual niche.
As those in industry would be the first to let me know, Python is not the only option. There are Java-based tools (Deeplearning4j, Weka), those integrated with Apache Spark and/or Hadoop (MLlib, Mahout), C++ solutions (TensorFlow is written in C++, as are many others in the Python ecosystem), and even those for Clojure, F#, Rust, and a whole host of other languages, environments, and ecosystems.
Our first offering may not have many repo stars, but is a general purpose machine learning suite which includes a large number of tools, and is actively developed (updated a few hours ago, thank you very much). Directly from the developers:
This library is a compilation of the tools developed in the mljs organization.
The mljs organization is concerned with:
Machine learning and numerical analysis tools for Node.js and the Browser!
This repo has not been updated in a few years, but it has garnered a number of stars in its day. Directly from the repo's README:
Machine learning library for node.js. You can also use this library in browser.
This potential alternative to entry number 1 (above) is another general purpose suite, and is written by Joon-Ku Kang. It features Logistic Regression, Multi-Layer Perceptrons, SVMs, K-nearest Neighbors, Decision Trees, and more. Its README has sample code for each of its featured algorithms, meaning that you should be able to play with something right away. You can try out an in-browser demo here.
It has great documentation, as well as in-browser examples. Karpathy has also written what is a well-respected and widely-read piece that relates nicely to ConvNetJS, titled Hacker's Guide to Neural Nets, which may be of interest to someone considering using any of these libraries.
Software engineer Juan Cazala is responsible for Synaptic, self-described as an "architecture-free neural network library for node.js and the browser." As such, Synaptic can be used to build a wide variety of neural network architectures.
Its documentation is very good, and "getting started" sample code on the Github README shows the implementation of a few network types with little code or trouble. A recently-featured KDnuggets tutorial includes a detailed overview on building a simple neural network with Synaptic. It is also actively developed.
|Top Stories Past 30 Days|