Rusty-Machine - Version 0.3

What is rusty-machine?

For those who haven’t heard of rusty-machine you can check out the repo and crate.

Rusty-machine is a general purpose machine learning library written entirely in Rust. I wanted to create a library which could support both performance and ease of use - without a large number of external dependencies. Rust lets us write a modular library with a simple interface which can be easily extended by the user. For a more concrete explanation check out my previous blog post.

What’s new?

A lot has changed since v0.2. Probably too much to list everything so I’ll stick with the important stuff.

A lot of work went into optimizing the linear algebra. It’s no longer terrible (but still not state of the art). Thanks to matrixmultiply we now have a fairly competitive matrix multiplication implementation. Along the same lines we’ve also introduced the idea of a MatrixSlice. This behaves like a slice in the standard library but for matrices! It has already helped us remove a lot of copying and allocation - with more to come.

There have also been some additions to the learning module. We’ve introduce two new machine learning algorithms: Naive Bayes and GMMs. Both follow the same pattern as the other models - focusing on modularity and customizability.

Version 0.3 also brings some new ML tools: Regularization and AdaGrad. Regularization hasn’t been fully implemented yet but is in place for Neural Nets - the other relevant models will follow soon!