目前,我正在使用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
答案 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对象进行操作。