<!-- Source: https://docs.squirro.com/en/latest/api/squirro.lib.nlp.steps.classifiers.KFoldValidation.html -->
# KFoldValidation

**`class KFoldValidation(config)`**

Bases: [`Classifier`](squirro.lib.nlp.steps.classifiers.Classifier.md#squirro.lib.nlp.steps.classifiers.Classifier)

The k-fold validation [`Classifier`](squirro.lib.nlp.steps.classifiers.Classifier.md#squirro.lib.nlp.steps.classifiers.Classifier) wrapper executes the specified [`Classifier`](squirro.lib.nlp.steps.classifiers.Classifier.md#squirro.lib.nlp.steps.classifiers.Classifier) into the k-fold validation principle. Based on the results of the k unseen test sets it creates the necessary files for the metrics and confusion matrix in the AI Studio Validation screens.

**Note** - The stored model is based on all input data, k-fold validation is only produced for the metrics

**Input** - Since it is a wrapper step check the used [`Classifier`](squirro.lib.nlp.steps.classifiers.Classifier.md#squirro.lib.nlp.steps.classifiers.Classifier)

**Output** - Since it is a wrapper step check the used [`Classifier`](squirro.lib.nlp.steps.classifiers.Classifier.md#squirro.lib.nlp.steps.classifiers.Classifier)

Parameters

- `type` ([`str`](https://docs.python.org/3.11/library/stdtypes.html#str)) – kfold
- `classifier` ([`str`](https://docs.python.org/3.11/library/stdtypes.html#str)) – 

  model to be used

  Deprecated since version 3.2.0: Define classifier type using the `classifier_params` parameter.
- `classifier_params` ([`dict`](https://docs.python.org/3.11/library/stdtypes.html#dict)`, ``{}`) – params
- `k` ([`int`](https://docs.python.org/3.11/library/functions.html#int)`, ``5`) – DS splitting parameter
- `output_path` ([`str`](https://docs.python.org/3.11/library/stdtypes.html#str)) – k-fold output path

**Example**

```json
{
    "step": "classifier",
    "type": "kfold"
    "k": 5,
    "label_field": "label",
    "output_field": "prediction",
    "output_path": "./ml_results.json",
    "classifier_params": {
        "step": "classifier",
        "type": "cosine_similarity",
        "input_fields": ["embedded_extract"],
        "output_field": "prediction",
        "label_field": "label",
    }
}
```

Methods SummaryMethods Documentation

**`process(docs)`**

Process a set of documents

Parameters

`docs` (`generator``(`[`Document`](../technical/libnlp/base.md#squirro.lib.nlp.document.Document)`)`) – Generator of documents

Returns

Generator of processed documents

Return type

generator([Document](../technical/libnlp/base.md#squirro.lib.nlp.document.Document))

**`train(docs)`**

Train on a step of a set of documents

Parameters

`docs` (`generator``(`[`Document`](../technical/libnlp/base.md#squirro.lib.nlp.document.Document)`)`) – Generator of documents

Returns

Generator of processed documents

Return type

generator([Document](../technical/libnlp/base.md#squirro.lib.nlp.document.Document))
