Как вставить столбец для прогнозирования (метка) - PullRequest
0 голосов
/ 09 февраля 2020

Я строю мультиклассовую программу классификации и хочу динамически вставлять данные поезда из CSV.

Я попытался:

var loader = context.Data.CreateTextLoader(
    new[] 
    {
        new TextLoader.Column("sentiment", DataKind.String,0),

        new TextLoader.Column("content", DataKind.String, 1),
    },
    // First line of the file is a header, not a data row.
    hasHeader: true);

var trainData = loader.Load(_filePath);

var experiment = context.Auto().CreateMulticlassClassificationExperiment(240);

//find best model
var result = experiment.Execute(trainData);
Console.WriteLine(Environment.NewLine);
Console.WriteLine("Best run:");
Console.WriteLine($"Trainer name - {result.BestRun.TrainerName}");

Когда я запускаю программу, я получаю эту ошибку

System.ArgumentException: 'Предоставленный столбец метки' Метка 'не найден в данных обучения.'

Я знаю, что есть способ создать класс во время выполнения и пройти это как схема в LoadFromText, но я пока не смог заставить его работать.

1 Ответ

0 голосов
/ 10 февраля 2020

Я думаю, я вижу, что вам нужно. В методе Execute есть перегрузка, которую он может принять за ColumnInformation.

Просто создайте его экземпляр, и свойство для него позволит вам указать имя столбца метки.

var labelColumnInfo = new ColumnInformation()
{
    LabelColumnName = "sentiment"
};

Затем вы можете передать это в метод Execute.

var result = experiment.Execute(trainData, labelColumnInfo);
...