ML.net - неверное значение в строке 1 в метке столбца - PullRequest
0 голосов
/ 09 мая 2018

Я следую учебнику Iris для ML.Net, вместо того, чтобы копировать / вставлять инструкции, я набрал инструкции, чтобы лучше изучить API, но теперь получаю некоторые ошибки.

Когда я запускаю эту строку из учебника, выдается System.Reflection.TargetInvocationException:

var model = pipeline.Train<IrisData, IrisPrediction>();

Ошибки консоли, которые я получаю во время выполнения:

  Bad value at line 2 in column Label
  ...
  Bad value at line 8 in column Label
  Suppressing further bad value messages
  ...
Processed 150 rows with 150 bad values and 0 format errors
Warning: Term map for output column 'Label' contains no entries.
Automatically adding a MinMax normalization transform, use 'norm=Warn' or 'norm=No' to turn this behavior off.
Using 2 threads to train.
Automatically choosing a check frequency of 2.
  Bad value at line 1 in column Label
  ...
  Suppressing further bad value messages
Processed 150 rows with 150 bad values and 0 format errors
Warning: Skipped 150 instances with missing features/label during training

Вот мой IrisData класс:

namespace Ronald.A.Fisher
{
    public class IrisData
    {
        [Column("0")]
        public float SepalLength;
        [Column("1")]
        public float SepalWidth;
        [Column("2")]
        public float PetalLength;
        [Column("3")]
        public float PetalWidth;
        [Column("4")]
        [ColumnName("Label")]
        public float Label;
    }

1 Ответ

0 голосов
/ 09 мая 2018

После недолгого просмотра я понял, что в одном из моих столбцов был неверный тип данных.

В классе, используемом для загрузки обучающих данных, IrisData, я использовал неверный тип данных для Label. Отсюда и консольное сообщение: Bad value at line 1 in column Label.

Чтобы исправить это, я изменил тип данных для поля Label с float на string:

public class IrisData
{
    ...
    [ColumnName("Label")]
    public string Label;
}
...