Необработанное исключение: System.ArgumentOutOfRangeException: несоответствие схемы для столбца объектов «Функции»: ожидаемый вектор, получил вектор - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь написать базовую программу типа 'hello world', чтобы предсказать значения функции XOR.Это сообщение об ошибке, которое я получаю:

Unhandled Exception: System.ArgumentOutOfRangeException: Schema mismatch for feature column 'Features': expected Vector<R4>, got Vector<R8>

Имя параметра: inputSchema Это мой код:

type Sample = {
    X: float
    Y: float
    Result: float
}

let createSample x y result = {X = x; Y = y; Result = result}

let solveXOR() =
    let problem = 
        [
            createSample 0.0 0.0 0.0
            createSample 1.0 0.0 1.0
            createSample 0.0 1.0 1.0
            createSample 1.0 0.0 0.0
        ]

    let context = new MLContext()
    let data = context.Data.ReadFromEnumerable(problem)

    let pipeline = 
        context.Transforms
            .Concatenate("Features", "X", "Y")
            .Append(context.Transforms.CopyColumns(inputColumnName = "Result", outputColumnName = "Label"))
            //.Append(context.Transforms.Conversion.MapKeyToVector("X"))
            //.Append(context.Transforms.Conversion.MapKeyToVector("Y"))
            .AppendCacheCheckpoint(context)
            .Append(context.Regression.Trainers.FastTree())

    let model = pipeline.Fit(data)

    let predictions = model.Transform(data)
    let metrics = context.BinaryClassification.Evaluate(predictions)

    printfn "Accuracy %f" metrics.Accuracy

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

1 Ответ

0 голосов
/ 24 февраля 2019

Кажется, что жалуется на размер чисел с плавающей точкой.AC # float эквивалентен F # float32, а double эквивалентен F # float.Поэтому попробуйте заменить float на float32 или single, а 0.0 на 0.0f.

A float32 также называется single в F #

  • C # float эквивалентно F # single или float32
  • C # double эквивалентно F # float или double
...