package orandforest

  1. Overview
  2. Docs
A random forest classifier based on OC4.5.

Install

Dune Dependency

Authors

Maintainers

Sources

v1.0.0.tar.gz
md5=c4db62f8692d06e6fe0eea8f7d4d791e

Description

Random forests are an ensemble learning method for classification and regression. Random forests correct decision trees' habit of over-fitting to their training set. Cf. "Breiman, Leo, 2001. Random forests. Machine learning, 45(1), pp.5-32" for details.

Published: 15 Feb 2018

README

ORandForest

A pure OCaml implementation of a random forest classifier based on OC4.5. See Wikipedia for more information.

OC4.5 is an implementation of C4.5 that can be found here.

Compiling

This project uses OBuild as a compilation manager.

To sum up, in order to get the project running,

    opam install obuild  # If you don't have it yet
    obuild configure
    obuild build
    obuild install

Documentation

You can generate the documentation by running ocamldoc. However, you can have a quick glance at the not necessarily up-to-date precompiled documentation here. Same goes for OC4.5 here.

Basic usage example

Assuming you're using integers (if not, use Oc45.FloatOc45 and ORandForest.FloatRandForest or reimplement the needed functions to functorize ORandForest.ORandForest with your datatype, a basic session would look like the following

  • First generate a dataset;

    let trainSet = Oc45.IntOc45.emptyTrainSet
        nbFeatures nbCategories featuresContinuity in
    Oc45.IntOc45.addDataList trainDataPoints trainSet
  • then tweak the dataset to your needs;

  • then turn it into a random forest;

    let forest = ORandForest.IntRandForest.genRandomForest nbTrees trainSet in
  • then classify

    let categories = List.map
        (ORandForest.IntRandForest.classify forest) testDataPoints in

Dependencies (4)

  1. parmap
  2. oc45
  3. jbuilder >= "1.0+beta7"
  4. ocaml

Dev Dependencies

None

Used by

None

Conflicts

None