if minimize is True then WOperator modifies all labels in the training set such that
train receives a training set with only consistent patterns (no \(x_i = x_j\) and \(y_i \neq y_j\)).

if ordered is True train receives as input a tuple \((X, y)\), where \(X\) contains input patterns in
its rows and \(y\) contains the labels. If ordered is False train receives a dictionary with patterns and
keys and a dictionary with the frequency of each output as values.