首页/资讯中心/资讯详情/

SVM与KNN的算法的探讨

support Vector Machine (支持向量机) 是一个监督学习算法,既可以用于分类(主要)也可以用于回归问题。SVM算法中,我们将数据绘制在n维空间中(n代表数据的特征数),然后查找可以将数据分成两类的超平面。支持向量指的是观察的样本在n为空间中的坐标,SVM是将样本分成两类的最佳超平面。将两类点分开,svm将会寻找可以区分两个类别并且能使间隔(margin)最大的划分超平面,margin是两个虚线到超平面的距离之。

SVM与KNN的区别

SVM的原理:是先在训练集上训练一个模型,然后用这个模型直接对测试集进行分类。需要超平面wx+b来分割数据集(此处以线性可分为例),因此会有一个模型训练过程来找到w和b的值。训练完成之后就可以拿去预测了,根据函数y=wx+b的值来确定样本点x的label,不需要再考虑训练集。SVM是要去找一个函数把达到样本可分,SVM在处理高纬度的数据上有优势。

KNN的原理:基本原理就是找到训练数据集里面离需要预测的样本点距离最近的k个值(距离可以使用比如欧式距离,k的值需要自己调参),然后把这k个点的label做个投票,选出一个label做为预测结果。KNN需要考虑每一个数据,KNN不能处理样本维度太高的东西