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
Pipeline
type, 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/