从 R 中的 SVM 输出中提取拉格朗日乘数
Extracting Lagrange Multipliers from SVM output in R
我想从 e1071
R 包中的 SVM
函数中提取 alpha 拉格朗日乘数,但是我不确定 svm$coef
是否正在生成这些乘数?
- Alpha 定义为公式 9.23,p352,An Introduction to Statistical Learning
在 SVM
的文档中说
SVM$Coefs
= 相应的系数乘以训练标签
有人可以解释一下吗?
$coefs 产生 alpha_i * y_i
,但根据定义 alpha_i
是非负的,你可以简单地取 coefs 的绝对值,它给你拉格朗日乘数,并提取 y_i
通过记号(因为它们只有 +1 或 -1)。这只是一种简化,通常在 SVM 包中使用,因为实际上从未使用过乘数 - 只有它们的产品带有标签,因此它们存储为单个数字,为了简单和高效,并且在需要的情况下(像这个一样) - 你总是可以重建它们。
我想从 e1071
R 包中的 SVM
函数中提取 alpha 拉格朗日乘数,但是我不确定 svm$coef
是否正在生成这些乘数?
- Alpha 定义为公式 9.23,p352,An Introduction to Statistical Learning
在 SVM
的文档中说
SVM$Coefs
= 相应的系数乘以训练标签
有人可以解释一下吗?
$coefs 产生 alpha_i * y_i
,但根据定义 alpha_i
是非负的,你可以简单地取 coefs 的绝对值,它给你拉格朗日乘数,并提取 y_i
通过记号(因为它们只有 +1 或 -1)。这只是一种简化,通常在 SVM 包中使用,因为实际上从未使用过乘数 - 只有它们的产品带有标签,因此它们存储为单个数字,为了简单和高效,并且在需要的情况下(像这个一样) - 你总是可以重建它们。