Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Accord.NET中的多标签支持向量机_C#_Machine Learning_Svm_Accord.net - Fatal编程技术网

C# Accord.NET中的多标签支持向量机

C# Accord.NET中的多标签支持向量机,c#,machine-learning,svm,accord.net,C#,Machine Learning,Svm,Accord.net,我正在尝试使用Accord.NET framework(MultilabelSupportVectorMachine类)制作一个多标签支持向量机,但根据示例,很难理解编码,例如: // Sample input data double[][] inputs = { new double[] { 0 }, new double[] { 3 }, new double[] { 1 }, new double[] { 2 }, }; // Outputs for ea

我正在尝试使用Accord.NET framework(MultilabelSupportVectorMachine类)制作一个多标签支持向量机,但根据示例,很难理解编码,例如:

// Sample input data
double[][] inputs =
{
    new double[] { 0 },
    new double[] { 3 },
    new double[] { 1 },
    new double[] { 2 },
};

// Outputs for each of the inputs
int[][] outputs =
{
    new[] { -1,  1, -1 },
    new[] { -1, -1,  1 },
    new[] {  1,  1, -1 },
    new[] { -1, -1, -1 },
};

如果我的输出是一个包含不在-1和+1范围内的整数值的矩阵,我们应该使用什么编码将数据转换成这种格式呢?

这是多标签支持向量机在计算时返回的输出格式。MultiClassSupportVectorMachine返回单个int,因为当您确定示例仅匹配单个类时,将使用该int,而MultiLabelSupportVectorMachine返回一个数组,该数组显示示例匹配的类,并在示例可以匹配更多类时使用

它的工作原理如下: 输出数组长度介于0(含0)和类数之间。因此,如果您有4个类,您将有如下输出数组:

{ -1, -1, 1, -1 }
这意味着输出类是2,因为1的索引是2。 我希望现在您知道这个类的输出是如何工作的,并且这为您提供了如何格式化示例输出的方向


其他信息:如果要使用MultiLabelSupportVectorMachine,但只想获得一个输出类,则可以在输出数组中获取第一个索引1。只有在您确信“一对所有”比“一对一”更好的情况下,我才建议您这样做。

API已经更新,以使这种用法(针对多类问题的多标签SVM)更简单。如果您仍然需要,请查看多标签SVM文档页面的示例部分: