从 R 中的 SVM 输出中提取拉格朗日乘数

Extracting Lagrange Multipliers from SVM output in R

我想从 e1071 R 包中的 SVM 函数中提取 alpha 拉格朗日乘数,但是我不确定 svm$coef 是否正在生成这些乘数?

SVM 的文档中说

SVM$Coefs = 相应的系数乘以训练标签

有人可以解释一下吗?

$coefs 产生 alpha_i * y_i,但根据定义 alpha_i 是非负的,你可以简单地取 coefs 的绝对值,它给你拉格朗日乘数,并提取 y_i通过记号(因为它们只有 +1 或 -1)。这只是一种简化,通常在 SVM 包中使用,因为实际上从未使用过乘数 - 只有它们的产品带有标签,因此它们存储为单个数字,为​​了简单和高效,并且在需要的情况下(像这个一样) - 你总是可以重建它们。