roc-lang / book-of-examples

Software Design by Example in Roc
Other
23 stars 15 forks source link

topic proposal: machine learning from first principles #24

Closed hristog closed 1 month ago

hristog commented 2 months ago

This is a bit more general than https://github.com/roc-lang/book-of-examples/issues/4.

The proposal involves introducing fundamental machine learning concepts such as data preprocessing, feature engineering, model training, validation and evaluation (essentially, steps which make up a machine learning pipeline).

I've been working on a library called RocLearn, with API that is close to Python's sklearn library. The idea is to implement fundamental machine learning algorithms (k-nearest neighbours, Principal Component Analysis, Support Vector Machines, Linear Regression etc) from first principles and at the same time abstract out the details of each one, in order to enable them to be viewed as modules that could be plugged in and out, as part of the more general steps, associated with a machine learning pipeline.

gvwilson commented 2 months ago

As with neural networks, blockchain, and the proposal to do turtle graphics, my concern is that these aren't tools that most programmers use while programming: they're very cool (I work for a company using ML for drug discovery), but the previous two books used things like package managers and linting as examples so that there was a discernible theme. Thoughts?

hristog commented 1 month ago

@gvwilson, understood, yes! I completely agree that these are topics that aren't sufficiently aligned with the intended overall theme.