в Microsoft ML, как настроить счет и прогнозировать вывод метки - PullRequest
0 голосов
/ 25 октября 2018

Мы оцениваем ML.Net, выпуск 0.6, я разочарован сообщениями об ошибках ... Моя проблема, возможно, кто-то знает, что я делаю неправильно.

У меня есть класс, который мы создали для ML.Net, у него есть функции и метка.в обучающем конвейере я добавляю

var pipeline = new LearningPipeline() {
    new TextLoader(_trainingFile.FullName).CreateFrom<MyClass>(useHeader: true, separator: separator),
    new ColumnCopier(("Trend", "Label")),
    new Dictionarizer("Label"),
    new CategoricalOneHotVectorizer("Trend"),
    new ColumnConcatenator("Features,"col1","col2",... "Trend"),
    new StochasticDualCoordinateAscentClassifier()
    {
        Shuffle = false,
    },
    new PredictedLabelColumnOriginalValueConverter()
    {
            PredictedLabelColumn="PredictedLabel"
    }
};

Мой класс Predict выглядит следующим образом:

class MyPrediction
{
    [ColumnName("PredictedLabel")]
    public string PredictedLabels;

    [ColumnName("Score")]
    public float Scores;
}

Столбец Trend представляет собой строку с метками Enum.Я запускаю тренировку, и она работает хорошо, не всегда предсказывая правильно, но когда я добавляю столбец с оценками, я получаю ошибку.

Невозможно привязать столбец IDataView «Оценка» типа «Vec» к полю или свойству «Счета» типа «System.Single».

Что делатьМне нужно сделать, чтобы получить прогнозируемое значение и балл, любые предложения приветствуются.

1 Ответ

0 голосов
/ 31 октября 2018

Чтобы ответить более широко, любая обученная модель ML.NET - это ITransformer.Это означает, что он может Transform() входящий набор данных («примеры») в выходной набор данных («прогнозы»).

Эту возможность можно назвать «пакетным прогнозированием»: если у вас есть целый набор примеров данных, вы можете запустить модель для них всех одним вызовом Transform().

Чтобы упростить предсказание «пример к примеру», мы добавили идиому PredictionFunction. Здесь является полным примером.

Вы можете «запросить» любое количество столбцов из результата прогнозирования: просто добавьте соответствующие поля в свой класс «прогнозирования» и PredictionFunctionбудет заполнять их соответствующим образом.

...