Im trying to return a prediction / label of an array of numbers but get a Schema mismatch for label column '': expected R4, got Vector Parameter name: labelCol' error. Any ideas what im doing wrong.
Im using ml.net 0.11 in visual studio 2017. Im loading the data from an enumerable and passing that to the pipeline. It works fine for one value but when I change to output to vector i get the error.
The class structure is
Public Class BallsDrawn
<LoadColumn(0)>
<ColumnName("Sequence")>
Public Sequence As Single
<LoadColumn(1)>
<ColumnName("Day")>
Public Day As Single
<LoadColumn(2)>
<ColumnName("Month")>
Public Month As Single
<LoadColumn(3)>
<ColumnName("Year")>
Public Year As Single
<LoadColumn(4)>
<ColumnName("Balls")>
<VectorType(8)>
Public Balls() As Single
End Class
Public Class BallsDrawnPrediction
<ColumnName("Score")>
<VectorType(8)>
Public Balls() As Single
End Class
'code to load data worka fine. testDataView = mlContext.Data.LoadFromEnumerable((GetTestDataList(records, 5)))
'pipeline
Dim dataProcessPipeline = mlContext.Transforms.Conversion.MapValueToKey(outputColumnName:=DefaultColumnNames.Label, inputColumnName:=NameOf(MLnet.BallsDrawn.Balls)).Append(mlContext.Transforms.CopyColumns(outputColumnName:=DefaultColumnNames.Label, inputColumnName:=NameOf(MLnet.BallsDrawn.Balls))).Append(mlContext.Transforms.Categorical.OneHotEncoding(outputColumnName:="Sequence", inputColumnName:=NameOf(MLnet.BallsDrawn.Sequence))).Append(mlContext.Transforms.Normalize(outputColumnName:=NameOf(BallsDrawn.Day), mode:=NormalizerMode.MeanVariance)).Append(mlContext.Transforms.Normalize(outputColumnName:=NameOf(BallsDrawn.Month), mode:=NormalizerMode.MeanVariance)).Append(mlContext.Transforms.Normalize(outputColumnName:=NameOf(BallsDrawn.Year), mode:=NormalizerMode.MeanVariance)).Append(mlContext.Transforms.Concatenate(DefaultColumnNames.Features, "Sequence", NameOf(MLnet.BallsDrawn.Day), NameOf(MLnet.BallsDrawn.Month), NameOf(MLnet.BallsDrawn.Year))).AppendCacheCheckpoint(mlContext)
'testing multiple trainers
Dim trainer As IEstimator(Of ITransformer)
Select Case Learner
' Case = Learner.FastTree
' trainer = mlContext.Ranking.Trainers.FastTree(labelColumnName:=DefaultColumnNames.Label, featureColumnName:=DefaultColumnNames.Features)
' Case = Learner.FastTreeTweedie
' trainer = mlContext.Regression.Trainers.FastTreeTweedie(labelColumnName:=DefaultColumnNames.Label, featureColumnName:=DefaultColumnNames.Features)
Case = Learner.Poisson
trainer = mlContext.Regression.Trainers.PoissonRegression(labelColumnName:=DefaultColumnNames.Label, featureColumnName:=DefaultColumnNames.Features)
Case = Learner.SDCA
'mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent
' trainer = mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent(labelColumnName:=DefaultColumnNames.Label, featureColumnName:=DefaultColumnNames.Features)
' trainer = mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent(labelColumnName:=DefaultColumnNames.Label, featureColumnName:=DefaultColumnNames.Features)
trainer = mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent(labelColumnName:=DefaultColumnNames.Label, featureColumnName:=DefaultColumnNames.Features)
' Case = Learner.FastForestRegressor
' trainer = mlContext.Regression.Trainers.FastForest(labelColumnName:=DefaultColumnNames.Label, featureColumnName:=DefaultColumnNames.Features)
' Case = Learner.GeneralizedAdditiveModels
' trainer = mlContext.Regression.Trainers.GeneralizedAdditiveModels(labelColumnName:=DefaultColumnNames.Label, featureColumnName:=DefaultColumnNames.Features)
Case = Learner.OnlineGradientDescentRegressor
trainer = mlContext.Regression.Trainers.OnlineGradientDescent(labelColumnName:=DefaultColumnNames.Label, featureColumnName:=DefaultColumnNames.Features)
' mlContext.MulticlassClassification.Trainers.StochasticDualCoordinateAscent
End Select
Dim trainingPipeline = dataProcessPipeline.Append(trainer)
' STEP 4: Train the model fitting to the DataSet
'The pipeline is trained on the dataset that has been loaded and transformed.
' Console.WriteLine("=============== Training the model ===============")
'get the error here. Dim trainedModel = trainingPipeline.Fit(trainingDataView)
trying to get an array or multiple number outputs. Any help or advise will be greatly appreciated.