'Issue with ML.NET Fit: Source array was not long enough

The full error is : 'Source array was not long enough. Check the source index, length, and the array's lower bounds. (Parameter 'sourceArray')'

(IDataView trainingDataView, IDataView testDataView) = LoadData(mlContext); // Load

IDataView transformedNewData = dataPrepPipeline.Transform(trainingDataView);


var est = mlContext.Transforms.Categorical.OneHotEncoding("usernameEncoded", "username").Append(mlContext.Transforms.Categorical.OneHotEncoding("tagEncoded", "tag"));
var fitted = est.Fit(transformedNewData);
var data = fitted.Transform(transformedNewData);

var testEst = mlContext.Transforms.Categorical.OneHotEncoding("usernameEncoded", "username").Append(mlContext.Transforms.Categorical.OneHotEncoding("tagEncoded", "tag"));
var testFitted = testEst.Fit(testDataView);
var testData = testFitted.Transform(testDataView);


var options = new FieldAwareFactorizationMachineTrainer.Options
{
    FeatureColumnName = "usernameEncoded",
    ExtraFeatureColumns = new string[] { "tagEncoded" },
    LabelColumnName = "Label",
    LambdaLatent = 0.01f,
    LambdaLinear = 0.001f,
    LatentDimension = 16,
    NumberOfIterations = 50,
    LearningRate = 0.5f,
    Verbose = true
};

FieldAwareFactorizationMachinePredictionTransformer retrainedModel =
mlContext.BinaryClassification.Trainers.FieldAwareFactorizationMachine(options).Fit(data, testData, originalModelParameters);  // Error is here


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source