

支持向量机(SVM)是一种在机器学习领域中使用的监督学习算法。它主要用于执行分类和回归等任务。该算法可以处理各种任务,例如判断电子邮件是否为垃圾邮件、识别手写字体,甚至在图片中检测人脸。它非常适应性强,能处理大量信息和数据中的复杂关系。
SVM的主要任务是根据特征绘制最佳的分隔线(或平面),以区分不同组的事物。就像在数据集中找到不同类别之间的最佳边界一样。因此,无论是对文本、图像还是其他任何东西进行分类,SVM都是机器学习中的首选工具。
SVM的类型
线性支持向量机
当数据可以通过一条直线轻松分为两组时,线性SVM效果最好。想象一下你的数据就像是纸上的点,你可以画一条直线将它们整齐地分成两个不同的类。也就是说,数据应该是完全线性可分的。
非线性支持向量机
当数据无法通过一条直线分类成两组时,我们就会引入非线性SVM。这种情况下,数据不是线性可分的。在这种情况下,非线性SVM可以派上用场。在现实世界中,数据通常杂乱无章,不遵循简单的规律,这时我们就可以使用非线性SVM及其核技巧。
它是如何工作的?
想象一下,你手上有两组事物,比如绿色和蓝色的点,散落在地板上。SVM的任务是找到一条最佳的直线(或者如果你在三维世界中则是一个平面),将这些点分隔成各自的组。
现在,可能有很多条分隔这些点的直线,对吧?但是SVM会寻找一个特殊的直线——与最接近的绿色点到直线的距离和最接近的蓝色点到直线的距离之间有最大距离的直线。这个距离被称为“间隔”,SVM希望使其尽可能大。
那些在定义直线时起着关键作用的最近的点被称为“支持向量”。SVM专注于这些点,以绘制最佳的直线,使两组之间的空间最大化。
但是,如果你的点没有被一条直线整齐地分开呢?如果它们到处都是?这就是SVM可以使用所谓的“核技巧”将问题提升到一个更高维度空间的地方,这样可以绘制出更复杂的分割曲线或曲面。
用例与应用
1. 垃圾邮件过滤:想象一下,你的电子邮箱里有一堆邮件,其中一些是垃圾邮件,一些则不是。支持向量机(SVM)可以用来创建一个智能过滤器,学会区分垃圾邮件和普通邮件。它会查看邮件的各种特征,比如使用的词语,并绘制一条线来将垃圾邮件与非垃圾邮件分开,保持您的邮箱清洁。
2. 手写识别:如果你希望你的计算机识别不同人的手写。SVM可以做到这一点。通过分析手写字母的特征,比如形状和大小,SVM可以绘制线条或曲线来将一个人的手写与另一个人的手写分开,使其在邮政服务等应用中有用于识别数字。
3. 医学诊断:在医学领域,SVM可以帮助诊断疾病。假设你有关于患者的数据,其中一些患有某种疾病,另一些没有。SVM可以分析各种健康指标,并创建一个边界来区分健康患者和患有该疾病的患者。这可以帮助医生进行更准确的诊断。
4. 图像分类:考虑这样一个场景,你有很多图片,其中一些是猫,一些是狗。SVM可以成为一个英雄,创建一个系统,学会根据颜色、形状或图案等特征区分猫和狗。它绘制一条线(或更复杂的边界)来正确分类新的图片。
5. 股票市场预测:如果你对股票市场感兴趣,SVM可以派上用场。通过分析历史股票数据,考虑交易量和价格变动等各种因素,SVM可以创建一个模型来预测股票的涨跌。
参考资料:
- https://towardsdatascience.com/support-vector-machine-introduction-to-machine-learning-algorithms-934a444fca47
- https://www.techtarget.com/whatis/definition/support-vector-machine-SVM
- https://monkeylearn.com/blog/introduction-to-support-vector-machines-svm/
- https://www.analyticsvidhya.com/blog/2021/10/support-vector-machinessvm-a-complete-guide-for-beginners/
- https://www.geeksforgeeks.org/support-vector-machine-algorithm/
文章来源:什么是支持向量机(SVM)?出现在MarkTechPost上。