嗨我之前有ANN(人工神经网络)的背景,我用八度音程做了。我成功地将网络从八度转换为c ++。
我这样做的方法是查看从网络返回的参数(wight矩阵和偏差矩阵)并将其复制到c ++参数并进行正确的计算。
现在我开始使用八度音阶的svm,用LIBSVM我成功训练
这里是训练的代码:
Writer
以及预测验证组(新组)的结果 这里是预测代码:
model = svmtrain(vOutput, vInput,'-g 1 -c 100 ' );
它工作得很好..但我需要用c ++来做,所以我想了解如何在不使用svmpredict构建函数的情况下自己预测结果。
我在火车后得到的参数是:
[predicted_label, accuracy, dec_values] = svmpredict(targetHit', inputHit, model);
但我不知道如何使用这些参数。 如果有人可以帮我解释如何在不使用svmpredict函数的情况下手动使用参数。
O.k我找到了这段代码:
fieldnames(model)
ans =
{
[1,1] = Parameters
[2,1] = nr_class
[3,1] = totalSV
[4,1] = rho
[5,1] = Label
[6,1] = sv_indices
[7,1] = ProbA
[8,1] = ProbB
[9,1] = nSV
[10,1] = sv_coef
[11,1] = SVs
}
但它与svmpredict的结果并不相容..
答案 0 :(得分:1)
此代码可以帮助您:
w = (model.sv_coef' * full(model.SVs));
bias = -model.rho;
predictions = sign(inputMiss * w' + bias);
但它与svmpredict的结果不兼容 - >它应该适合(再次检查。