我在《数据挖掘理论与实践洞察》一书中学习了支持向量机算法。
Page 253 Example 10.1
书中提到,算法在找到Wtranspose X -gama
后停止,并发现有3个误分类
。
书中还提到,分类器在训练集上的准确率
为70%
。那么,这是否是最终最优解
,还是说在支持向量机中进行了迭代
?如果有迭代,请告诉我从哪里开始迭代,以及应该从哪些数据开始迭代。
回答:
支持向量机以迭代方式进行训练,以寻找全局最优解。因此,它不会像神经网络那样陷入次优解,但仍然是以迭代方式进行训练,因为此类问题没有闭合形式的解。需要注意的是,这个最优解是通过最小化支持向量机的优化项来定义的,该优化项包含了边界大小和误分类数量的加权和,这与实际优化准确率(或任何其他评估指标)相去甚远。尽管你可以通过使用RBF核以及非常大的C和gamma值来人为地训练一个模型,使其在训练集上达到100%的准确率,但这会导致你的支持向量机过拟合数据(这将退化为一个简单的记忆训练集的无用模型,但你会看到“100%”的分数)。所以,是的,训练的结果是模型的“最终形式”,低于100%的准确率是预期的。
第二个问题“从哪里开始迭代”没有意义。在经典方法中,问题被转换为其对偶解释,其中运行SMO算法以在拉格朗日乘数的线性有界子空间上找到凸函数的最优解。迭代通过违反KKT最优性条件的点进行,因此这些是“开始”的点。