我正在尝试使用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/