如何使用LinearSvm?

时间:2018-11-19 21:24:38

标签: ml.net

目前,我正在使用FastTree进行二进制分类,但是我想尝试一下SVM并比较指标。

所有文档都提到LinearSvm,但是我在任何地方都找不到代码示例。

<?xml version="1.0" encoding="UTF-8"?> <Error> <Code>MethodNotAllowed</Code> <Message>The specified method is not allowed against this resource.</Message> <Method>POST</Method> <ResourceType>OBJECT</ResourceType> <RequestId>2B5DB5E28188BE4A</RequestId> <HostId>yXiiLTR5v8KERjzbG3fx4BGcZG5FO0e3Yufa0b9aC2W3sMyuOK3BBADtZj097T8E0qBZ3F/rBC8=</HostId> </Error>没有公共的SVM培训师。有mlContext.BinaryClassification.Trainers类和LinearSvm静态方法,但它们似乎是针对不同的事物的。

我想念什么?

版本:0.7

2 个答案:

答案 0 :(得分:0)

由于某些原因,运行时API中没有训练器,但是在here中发现的旧版API(对于v0.7)中存在线性SVM训练器。他们可能会为即将到来的API生成一个新的API,所以我的建议是要么使用旧版API,要么等待更新的API。

现阶段ML.Net尚处于开发阶段。

答案 1 :(得分:0)

复制粘贴在Github上的response

我为您提供两个答案:API的状态是什么,以及与此同时如何使用LinearSVM。

首先,我们在ML.NET代码库中具有LinearSVM,但尚无示例或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对象进行操作。