A small machine learning library in Haskell. My Bachelor's thesis.
Parts of the design was inspired by the popular scikit-learn Python library.
- Type classes for machine learning tasks:
fit,predict,evaluate. - Combining transformations with
Pipelinetype, anArrow-instance. Instead of using transformers as in scikit-learn, we make preprocessing composable with a pinch of category theory. - Error handling with
Either. Table: column-oriented representation of datasets (also for validating data type).- Small (and ugly) GUI for showcasing.
Use stack. Recommended to install gtk-buildtools before building.
See haddock. Generate them with e.g. stack haddock.
You can run the examples with publicly available datasets.
HousingPrices: https://archive.ics.uci.edu/ml/datasets/HousingNetworkIntrusionDetection: http://kdd.ics.uci.edu/databases/kddcup99/kddcup99.htmlSpamClassification: http://www2.aueb.gr/users/ion/data/enron-spam/