支持向量机,简称SVM,是一种常见的机器学习方法,尤其擅长处理分类问题,比如咱们常说的把事物分成两拨人,一类是这个,一类是那个。想象你有一堆红球和蓝球混在一起,SVM的任务就是找到一条线,能尽可能清楚地把红球和蓝球分开。
想发明这个算法的人,他们的主要目标就是找到一种方法,能让这条分开红球和蓝球的线,不仅划分得准确,而且两边的空间都尽可能大,这样即使球稍微移动一下,也不容易被分错边。在更复杂的情况下,比如球不是平铺在桌子上,而是四处散落,SVM也能通过一种数学手段,把这些球投到一个假想的空间里,再在那个空间找到一个能分开的“切面”。
在数学建模比赛中,SVM特别适合用在需要准确分类的场景,比如医生想知道病人是否有某种疾病,或者邮件系统要筛选出哪些是垃圾邮件。用SVM的时候,有两件事得注意:第一,要调整好模型的参数,这关系到模型能不能准确预测;第二,要对数据进行预处理,包括填补缺失的信息、处理异常数据、调整数据的规模和单位等等,这些直接影响到最后模型的表现。
预处理数据时,SVM对数据的大小和单位特别敏感,所以经常要对数据做些标准化处理,比如Z-Score让所有数据都按照一个标准变化,或者Min-Max把数据都缩放到最小值和最大值之间。如果数据里有缺失的部分,要么就得填上合理的值,要么直接把这部分数据扔掉。还有那些特别不正常的数据点也就是离群点,也得处理一下,可以用IQR方法或者Z-Score来找出并去掉它们。