学习支持向量机SVM及相关算法笔记

需积分: 0 2 下载量 167 浏览量 更新于2024-01-22 1 收藏 1.48MB DOC 举报
支持向量机(Support Vector Machine,SVM)是一种优秀的有监督学习算法。学习SVM的过程起源于去年暑假,当时老师要求我们交一份《统计学习理论》的报告,我在网上找到了一份入门教程,里面的讲解非常通俗易懂,对SVM的基本概念我有了初步的了解。而这次我通过斯坦福提供的学习材料,重新学习了一些SVM的知识。 以往一般的讲法都是从VC维理论和结构风险最小原理出发,然后引出SVM的概念,还有些资料会直接讲解分类超平面等内容。而这份材料则从前几节关于logistic回归的讲解出发,逐步引出了SVM,不仅揭示了模型之间的联系,也让整个过渡更加自然。 回顾一下,logistic回归的目标是通过学习特征,构建一个二分类模型,其中模型是将特征的线性组合作为自变量。由于自变量的取值范围是负无穷到正无穷,我们使用logistic函数(也称为sigmoid函数)来将自变量映射到[0, 1]的范围内,这个映射后的值被认为是属于y=1的概率。具体的形式表示为假设函数h(x)=g(w^T * x + b),其中x是n维特征向量,g是logistic函数。图像上可以看出,将无穷映射到了[0, 1]的范围内。所以假设函数就是根据特征推断y是否等于1的概率。 而SVM则是在logistic回归的基础上发展而来的。SVM的目标是求解一个最优化问题,找到一个能最大化分类准确率的分类超平面。物理意义上,一个超平面是一个(n-1)维的超平面,能将特征空间划分成两个部分,使得不同类别的样本点分别位于两个部分中。最佳超平面的选择是根据训练集中的一些特殊样本点,即支持向量,来进行的。这些支持向量是距离超平面最近的样本点,它们决定了超平面的形状和位置,并且对于分类决策起着重要的作用。 为了具体描述一个线性SVM分类器,我们先假设超平面的函数表示为w^T * x + b = 0,其中w是法向量,b是偏移量。对于给定的样本点x,我们可以通过计算w^T * x + b的值来确定x所在的区域,若大于0则属于一类,若小于0则属于另一类。由此可以看出,超平面将特征空间划分为两个部分,两个部分分别对应不同的类别。而支持向量正好位于超平面上,它们满足w^T * x + b = 1或w^T * x + b = -1。支持向量有了,我们可以利用它们求出超平面的方程,从而实现对未知样本的分类。 对于非线性问题,我们可以通过引入核函数来将特征映射到一个高维空间,从而可以在高维空间中找到一个超平面。这些核函数能够将样本原本的特征变换到一个更高维的空间,使得原本非线性可分的样本在高维空间中可以线性可分。SVM通过优化问题(凸优化问题)来求解最佳超平面,在优化过程中使用拉格朗日乘子法将原问题转化为对偶问题,最终得到了对偶问题的解,即支持向量和超平面的权重。 总结而言,SVM是一个非常强大的分类算法,通过最大化分类准确率来求解最佳超平面,通过引入核函数可以处理非线性问题。SVM的学习过程就是求解一个最优化问题,找到能最大化分类准确率的超平面,支持向量则起到了重要的作用。对于非线性问题,SVM使用核函数将特征映射到高维空间,实现在高维空间中的线性分类。欲了解更多关于SVM的细节,还需要进一步深入学习和研究。