MultilabelSupportVectorMachine

MultilabelSupportVectorMachine

我正在尝试使用Accord.NET框架(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范围内的整数值,我们应该使用哪种编码将数据转换为这种格式?

最佳答案

这是MultiLabelSupportVectorMachine如果使用它计算内容时将返回的输出格式。 MultiClassSupportVectorMachine返回单个int,因为当您确定示例仅匹配单个类时将使用该int,而MultiLabelSupportVectorMachine返回一个数组,该数组显示示例匹配的类,并在示例可以匹配更多类时使用。

它是这样的:
输出数组的长度在0(含)和类数之间。因此,如果您有4个类,则将具有如下输出数组:

{ -1, -1, 1, -1 }


这意味着输出类为2,因为索引1为2。
我希望现在您知道该类的输出如何工作,并为您提供如何格式化示例输出的指导。

附加信息:如果要使用MultiLabelSupportVectorMachine,但只想获取一个输出类,则只需在输出数组中采用第一个索引1。仅当您确定“一对多”比“一对一”更好时,我才建议这样做。

关于c# - Accord.NET中的多标签支持向量机,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35846151/

10-09 07:20