KNN算法

KNN算法就是把要分类的对象(例如一个特征向量)与训练集中已知类标记的所有对象进行对比,并由K近邻对分类对象进行判断为那个类别。这种方法的效果好,但是也有弊端,与K-means聚类算法一样,需要先预定设置k的值,k值的选择会影响分类的性能。此外这种方法要求整个训练集存储起来,如果训练集偏大,搜索就慢,训练集偏小,分类结果准确率也就低。对于大的训练集,采取某些装箱形式通常会减少对比的次数。

SVM支持向量机

SVM支持向量机是一类强大的分类算法,最简单的SVM通过在高维空间中寻找一个最优线性分类面,对于特征向量x的决策函数为:

KNN算法与SVM支持向量机-LMLPHP

其中w是常规超平面,b是偏移量常数,阈值为0,有一类为正数或负数,求解带有标记KNN算法与SVM支持向量机-LMLPHP的最优化问题,从而找到决策函数的参数。常规解释训练集上某些特征向量的线性组合为:

KNN算法与SVM支持向量机-LMLPHP

其中i是训练集中选出的部分样本,称为支持向量,它们可以帮助定义分类的边界。决策函数即变为:

KNN算法与SVM支持向量机-LMLPHP

SVM另一个优势是可以使用核函数 KNN算法与SVM支持向量机-LMLPHP,将特征向量映射到另一个不同维度的空间中。

KNN算法与SVM支持向量机-LMLPHP

10-04 19:54