了解支持向量机 (SVM) 在分类、回归和离群点检测方面的强大功能,以及在现实世界中的应用和见解。
支持向量机(SVM)是一种流行且功能强大的机器学习(ML)监督算法,主要用于分类任务,尽管它在回归(支持向量回归 - SVR)和离群点检测方面也很有效。SVM 开发于 20 世纪 90 年代,其工作原理是找到一个最佳边界(称为超平面),将高维空间中属于不同类别的数据点进行最佳分离。其关键思路是最大化边际--超平面与每个类别中最近的数据点(支持向量)之间的距离--这通常会带来对未见数据的良好泛化性能。
SVM 的核心原理是找到理想的超平面来划分数据集。对于可以通过直线或平面分离的数据(线性可分离数据),SVM 可以识别出在类之间产生最大可能差距的超平面。最接近这个超平面的数据点被称为支持向量,它们对确定超平面的位置和方向至关重要。这种对边界附近最具挑战性的点的关注使得 SVM 的记忆效率很高,因为训练后只需要这些支持向量来定义模型。
对于无法用线性边界(非线性可分离数据)区分类别的数据集,SVM 采用了一种称为 "核技巧 "的技术。这种巧妙的方法允许 SVM 将原始数据映射到一个可能实现线性分离的高维空间,而无需明确计算这个新空间中的坐标。常见的核函数包括
核及其参数的选择至关重要,通常需要仔细调整超参数。
尽管深度学习(DL)兴起,SVM 仍然具有重要意义,尤其是在高维数据(特征多)但训练样本有限的情况下。SVM 以其理论保证和鲁棒性而著称,尤其是当存在明显的分离边际时。从历史上看,SVM 与定向梯度直方图(HOG)等特征提取器相结合,在物体检测等任务中是最先进的,这一点在物体检测的发展过程中也有所体现。
常见的应用包括
优势
局限性:
与逻辑回归等更简单的算法相比,SVM 的目标是最大化边际,而不仅仅是找到一个分离边界,这可以带来更好的泛化效果。与决策树或随机森林不同,SVM 会构建一个单一的最优超平面。而现代深度学习模型,如 Ultralytics YOLO等现代深度学习模型擅长从原始数据(如计算机视觉中的像素)中自动提取特征,而 SVM 通常需要仔细的特征工程,但在较小的数据集或特定类型的结构化数据上表现良好。流行的实现包括LibSVM和scikit-learn 中的 SVM 模块。使用Ultralytics HUB 等平台可以简化此类模型的训练和管理。