This operator is used to create a classifier. Therefore, the result is a stream of classifiers (this is an own datatype!)

#### Parameter

- CLASS: The attribute that should be used as the class (the
- NOMINALS: For nominal classifiers, this list provides the possible values, because some algorithms have to know them in advance
- LEARNER: The algorithm that is used to construct the classifier
- Currently implemented: Weka (which in turn has further algorithms, see above)

- ALGORITHM: A set of options to set up the algorithm

#### Example

This example uses the weka-clusterer. The weka-clusterer should use the "simplekmeans" algorithm. the arguments to set up the weka-simplekmeans is "-N 3".

**Operator**

1 2 3 4 5 6 7 8 9 10 | `learned = CLASSIFICATION_LEARN({` ` ` `class=` `'attack'` `, ` ` ` `nominals = [` `'attack'` `=[` `'back'` `, ` `'smurf'` `, ` `'spy'` `]],` ` ` `learner = ` `'weka'` `,` ` ` `algorithm = ` ` ` `[` ` ` `'model'` `=` `'J48'` ` ` `] ` ` ` ` ` `}, inputoperator)` |

For weka, there are currently the following algorithms that can be used as the "model". Further details and possible arguments can be found in the Weka Docs

Classification (nominal values):

- J48 (an adapted version of C4.5, a decision tree induction)
- NaiveBayes
- DecisionTable
- SMO (Sequential Minimal Optimization)

Regression (continuous values):

- LINEAR-REGRESSION
- SIMPLE_LINEAR-REGRESSION
- LOGISTIC
- SIMPLE-LOGISTIC
- GAUSSIAN-PROCESSES
- SMO-Regression (a regression version of SMO)
- MULTILAYER-PERCEPTRON