module FloatOc45:S
with type contData = float
exception InvalidArgument of string
typefeature =
int
exception BadContinuity of feature
exception DiscreteFeatOutOfBounds of feature * int
DiscreteFeatureOutOfBounds feat class
is raised when trying to
classify a data vector with its discrete feature feat
equal to class
when the tree was created assuming that the values for this feature would
remain < class
.
This usually means that the value is very rare and was not encountered in
the training set, thus the limit inferred for the maximal value of this
feature is not high enough. You then have to set it manually, using
Oc45.S.setFeatureMax
.typecategory =
int
type
contData
Oc45.Make
type
dataVal =
| |
Discrete of |
| |
Continuous of |
typedata =
dataVal array
type
trainVal = {
|
data : |
(* |
Associates each feature id to its value. If the feature is
continuous, it may take any value; if the feature is discrete,
it must be an integer in a range 0..N inclusive for a bound N
inferred as the maximum of the given data. You can also set
this bound manually with
Oc45.S.setFeatureMax . | *) |
|
category : |
(* |
The category to which this data vector belongs.
| *) |
type
trainSet
Oc45.S.emptyTrainSet
, represents a training set
for the algorithm.type
decisionTree
Oc45.S.c45
.val c45 : trainSet -> decisionTree
val classify : decisionTree -> data -> category
val emptyTrainSet : int -> int -> bool array -> trainSet
emptyTrainSet nbFeatures nbCategories featContinuity
creates an
empty train set with nbFeatures
features and nbCategories
categories. The array featContinuity
must have nbFeatures
elements, with a true
value if
the corresponding feature is continuous (that is, may take any value) or
false
if the feature is discrete in a restrained set (eg., "Yes"/"No").
Raises Oc45.S.InvalidArgument
if featContinuity
has not a length
of nbFeatures
val addData : trainVal -> trainSet -> trainSet
val addDataList : trainVal list -> trainSet -> trainSet
val getSet : trainSet -> trainVal list
val setFeatureMax : int -> int -> trainSet -> unit
setFeatureMax feat maxVal trainSet
sets the maximum value the
discrete feature feat
may take. A discrete value is represented by
an integer between 0 and maxVal
(inclusive).
In most cases, you won't have to call this function and the bound will be
automatically set to the maximum value you gave, but you can still set
it in case you need to have more values that are not represented.
val getNbFeatures : trainSet -> int
val getFeatureMax : trainSet -> int array
Oc45.S.setFeatureMax
.val getFeatContinuity : trainSet -> bool array
Oc45.S.emptyTrainSet
.val getNbCategories : trainSet -> int
val getSetSize : trainSet -> int
val toDot : Format.formatter ->
(Format.formatter -> contData -> unit) -> decisionTree -> unit
Oc45.S.contData
type (ie., the type of a continuous data).val toDotStdout : (Format.formatter -> contData -> unit) -> decisionTree -> unit