Class SumEncoder<T>
- Namespace
- AiDotNet.Preprocessing.Encoders
- Assembly
- AiDotNet.dll
Encodes categorical features using sum (deviation) coding.
public class SumEncoder<T> : TransformerBase<T, Matrix<T>, Matrix<T>>, IDataTransformer<T, Matrix<T>, Matrix<T>>
Type Parameters
TThe numeric type for calculations (e.g., float, double).
- Inheritance
-
SumEncoder<T>
- Implements
- Inherited Members
Remarks
SumEncoder (also known as deviation coding or effect coding) compares each level to the grand mean of the dependent variable. The last category serves as the reference and is encoded as -1 in all columns.
For k categories, creates k-1 columns. Unlike one-hot encoding: - Each category (except reference) gets 1 in its column, 0 elsewhere - The reference category gets -1 in ALL columns - The sum of coefficients equals 0
For Beginners: Sum coding is useful in ANOVA-style analysis: - Shows how each category differs from the overall average - The reference category's effect is the negative sum of others - Coefficients are easier to interpret as deviations from mean
Constructors
SumEncoder(SumEncoderHandleUnknown, int[]?)
Creates a new instance of SumEncoder<T>.
public SumEncoder(SumEncoderHandleUnknown handleUnknown = SumEncoderHandleUnknown.UseZeros, int[]? columnIndices = null)
Parameters
handleUnknownSumEncoderHandleUnknownHow to handle unknown categories. Defaults to UseZeros.
columnIndicesint[]The column indices to encode, or null for all columns.
Properties
HandleUnknown
Gets how unknown categories are handled.
public SumEncoderHandleUnknown HandleUnknown { get; }
Property Value
NOutputFeatures
Gets the number of output features.
public int NOutputFeatures { get; }
Property Value
SupportsInverseTransform
Gets whether this transformer supports inverse transformation.
public override bool SupportsInverseTransform { get; }
Property Value
Methods
FitCore(Matrix<T>)
Fits the encoder by learning categories.
protected override void FitCore(Matrix<T> data)
Parameters
dataMatrix<T>
GetFeatureNamesOut(string[]?)
Gets the output feature names after transformation.
public override string[] GetFeatureNamesOut(string[]? inputFeatureNames = null)
Parameters
inputFeatureNamesstring[]
Returns
- string[]
InverseTransformCore(Matrix<T>)
Inverse transformation is not supported.
protected override Matrix<T> InverseTransformCore(Matrix<T> data)
Parameters
dataMatrix<T>
Returns
- Matrix<T>
TransformCore(Matrix<T>)
Transforms the data using sum coding.
protected override Matrix<T> TransformCore(Matrix<T> data)
Parameters
dataMatrix<T>
Returns
- Matrix<T>