Как использовать LinearSvm? - PullRequest
0 голосов
/ 20 ноября 2018

В настоящее время я использую FastTree для двоичной классификации, но я хотел бы попробовать SVM и сравнить метрики.

Во всех документах упоминается LinearSvm, но я нигде не могу найти пример кода.

mlContext.BinaryClassification.Trainers не имеет публичных тренеров SVM. Существует класс LinearSvm и статический метод LinearSvm.TrainLinearSvm, но, похоже, они предназначены для разных вещей.

Чего мне не хватает?

Версия: 0,7

Ответы [ 2 ]

0 голосов
/ 20 ноября 2018

Копировать, вставив ответ Я получил на Github:

У меня есть два ответа для вас: каков статус API и как использовать LinearSVM в то же время.

Во-первых, у нас есть LinearSVM в кодовой базе ML.NET, но у нас пока нет примеров или расширений API для его размещения в mlContext.BinaryClassification.Trainers. Это решается в выпуске № 1318. Я свяжу это с этой проблемой и отмечу как ошибку.

Между тем, вы можете использовать прямое создание экземпляров для получения доступа к LinearSVM:

var arguments = new LinearSvm.Arguments()
{
    NumIterations = 20
};
var linearSvm = new LinearSvm(mlContext, arguments);
var svmTransformer = linearSvm.Fit(trainSet);
var scoredTest = svmTransformer.Transform(testSet);

Это даст вам ITransformer, называемый здесь svmTransformer, который вы можете использовать для работы с объектами IDataView.

0 голосов
/ 20 ноября 2018

По какой-то причине в API времени выполнения нет тренера, но в Legacy API есть линейный инструктор SVM (для v0.7), найденный здесь . Возможно, они генерируют новый для готовящегося API, поэтому я советую либо использовать устаревший, либо ждать более нового API.

На данном этапе ML.Net находится в стадии разработки.

...