ml.net 0,11 пытается предсказать массив / последовательность чисел - Несоответствие схемы для столбца метки '': ожидается R4, получено Vector <R4> Имя параметра: labelCol ' - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь вернуть прогноз / метку для массива чисел, но получаю несоответствие схемы для столбца метки '': ожидается R4, получен вектор Имя параметра: labelCol 'ошибка.Любые идеи, что я делаю не так.

Я использую ml.net 0,11 в Visual Studio 2017. Я загружаю данные из перечисляемого и передаю их в конвейер.Он отлично работает для одного значения, но когда я переключаюсь на вывод на вектор, я получаю сообщение об ошибке.

Структура класса - это код

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

'для загрузки данных.testDataView = mlContext.Data.LoadFromEnumerable ((GetTestDataList (records, 5)))

'pipe

        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)

' тестирование нескольких тренеров

 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 ===============")

'получитьошибка здесь.Dim trainModel = trainingPipeline.Fit (trainingDataView)

пытается получить массив или несколько выходных чисел.Буду очень признателен за любую помощь или совет.

...