# SdcaMaximumEntropyMulticlassTrainer Class

## Definition

The IEstimator<TTransformer> to predict a target using a maximum entropy multiclass classifier. The trained model MaximumEntropyModelParameters produces probabilities of classes.

`public sealed class SdcaMaximumEntropyMulticlassTrainer : Microsoft.ML.Trainers.SdcaMulticlassTrainerBase<Microsoft.ML.Trainers.MaximumEntropyModelParameters>`

```
type SdcaMaximumEntropyMulticlassTrainer = class
inherit SdcaMulticlassTrainerBase<MaximumEntropyModelParameters>
```

```
Public NotInheritable Class SdcaMaximumEntropyMulticlassTrainer
Inherits SdcaMulticlassTrainerBase(Of MaximumEntropyModelParameters)
```

- Inheritance

## Remarks

To create this trainer, use SdcaMaximumEntropy or SdcaMaximumEntropy(Options).

### Input and Output Columns

The input label column data must be key type and the feature column must be a known-sized vector of Single.

This trainer outputs the following columns:

Output Column Name | Column Type | Description |
---|---|---|

`Score` |
Vector of Single | The scores of all classes. Higher value means higher probability to fall into the associated class. If the i-th element has the largest value, the predicted label index would be i. Note that i is zero-based index. |

`PredictedLabel` |
key type | The predicted label's index. If its value is i, the actual label would be the i-th category in the key-valued input label type. |

### Trainer Characteristics

Machine learning task | Multiclass classification |

Is normalization required? | Yes |

Is caching required? | No |

Required NuGet in addition to Microsoft.ML | None |

### Scoring Function

This trains a linear model to solve multiclass classification problems.
Assume that the number of classes is $m$ and number of features is $n$.
It assigns the $c$-th class a coefficient vector $\textbf{w}*c \in {\mathbb R}^n$ and a bias $b_c \in {\mathbb R}$, for $c=1,\dots,m$.
Given a feature vector $\textbf{x} \in {\mathbb R}^n$, the $c$-th class's score would be $\tilde{P}(c | \textbf{x}) = \frac{ e^{\hat{y}^c} }{ \sum*{c' = 1}^m e^{\hat{y}^{c'}} }$, where $\hat{y}^c = \textbf{w}_c^T \textbf{x} + b_c$.
Note that $\tilde{P}(c | \textbf{x})$ is the probability of observing class $c$ when the feature vector is $\textbf{x}$.

### Training Algorithm Details

See the documentation of SdcaMulticlassTrainerBase.

Check the See Also section for links to usage examples.

## Fields

FeatureColumn |
The feature column that the trainer expects. (Inherited from TrainerEstimatorBase<TTransformer,TModel>) |

LabelColumn |
The label column that the trainer expects. Can be |

WeightColumn |
The weight column that the trainer expects. Can be |

## Properties

Info | (Inherited from StochasticTrainerBase<TTransformer,TModel>) |

## Methods

Fit(IDataView) |
Trains and returns a ITransformer. (Inherited from TrainerEstimatorBase<TTransformer,TModel>) |

GetOutputSchema(SchemaShape) | (Inherited from TrainerEstimatorBase<TTransformer,TModel>) |

## Extension Methods

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Given an estimator, return a wrapping object that will call a delegate once Fit(IDataView) is called. It is often important for an estimator to return information about what was fit, which is why the Fit(IDataView) method returns a specifically typed object, rather than just a general ITransformer. However, at the same time, IEstimator<TTransformer> are often formed into pipelines with many objects, so we may need to build a chain of estimators via EstimatorChain<TLastTransformer> where the estimator for which we want to get the transformer is buried somewhere in this chain. For that scenario, we can through this method attach a delegate that will be called once fit is called. |

## Applies to

## See also

- SdcaMaximumEntropy(MulticlassClassificationCatalog+MulticlassClassificationTrainers, SdcaMaximumEntropyMulticlassTrainer+Options)
- SdcaMaximumEntropy(MulticlassClassificationCatalog+MulticlassClassificationTrainers, String, String, String, Nullable<Single>, Nullable<Single>, Nullable<Int32>)
- SdcaMaximumEntropyMulticlassTrainer.Options

## Feedback

Loading feedback...