svm算法

机器学习之支持向量机SVM

久未见 提交于 2020-03-24 08:11:48
支持向量机(support vector machine,SVM)是一种二分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使其有别于感知机。支持向量机还包括核技巧,使它成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。 1. 线性可分支持向量机与硬间隔最大化 1.1 线性可分支持向量机 考虑一个二分类问题,假设输入空间与特征空间为两个不同的空间。输入空间为欧式空间或离散集合,特征空间为欧式空间或希尔伯特空间。线性可分支持向量机、线性支持向量机假设这两个空间的元素一一对应。并将输入空间的输入映射为输出空间的特性向量。非线性支持向量机利用一个从输入空间到特征空间的非线性映射将输入映射为特性向量。所以,输入都由输入空间转换到特性空间,支持向量机的学习是在特征空间进行的。 假设给定一个特征空间上的训练数据集如下: $T=\left \{ \left ( x_{1},y_{1} \right ),\left ( x_{2},y_{2} \right ),...,\left ( x_{N},y_{N} \right ) \right \}$ 其中, , , ,$x_{i}$为第$i$个特征向量,也称为实例,$y_{i}$为$x_{i}

多分类器:KNN,SVM,Softmax,2-Layer-Affine-Net(以图像分类为例子)

时光怂恿深爱的人放手 提交于 2020-03-01 09:21:59
多分类器:KNN,SVM,Softmax,2-Layer-Affine-Net(以图像分类为例子) 记录一下 CS 231N 计算机视觉这门课所提到的一些基础分类器,结合机器学习中学到的二元分类器算法,并以 CIFAR 10 作为训练集测试多分类器性能。 KNN K近邻分类 主要思路:寻找训练集到测试集中最相似的 k k k 个图像(距离由矩阵二范数、或是 F r o b i n u s Frobinus F r o b i n u s 范数表示),并由 k k k 个最优结果投票决定其标签。 算法流程: 训练集导入 X X X 与标签 y y y 测试集输入 x ^ \hat x x ^ ,找到 X X X 中与 x ^ \hat x x ^ 距离最近的 k k k 个图像: χ = { X ~ 1 , ⋯   , X ~ k } \chi = \{\tilde X_1,\cdots, \tilde X_k\} χ = { X ~ 1 ​ , ⋯ , X ~ k ​ } (一般用二范数距离) 对标签进行计数: η = { ( X ~ 1 , y ~ ( 1 ) ) , ⋯   , ( X ~ k , y ~ ( p ) ) } \eta = \{(\tilde X_1, \tilde y^{(1)}),\cdots, (\tilde X_k, \tilde y^{(p)})\}

从负无穷学习机器学习(五)支持向量机SVM

天大地大妈咪最大 提交于 2020-01-13 14:15:18
文章目录 一、支持向量机 二、支持向量机的核函数 (一)、线性(linear)内核的SVM的分类器 (二)、RBF内核的SVM的分类器 三、SVM核函数和参数选择 (一)、不同核函数的对比 (二)、不同参数的对比 四、SVM示例——波士顿房价回归分析 (一)、查看数据集 (二)、使用SVR建模 一、支持向量机 如果样本数据是线性不可分的,之前的分类器处理这类数据效果不太好,而SVM(Support Vector Machine)是一种专门处理线性不可分数据的算法。 SVM算法中,训练模型的过程实际上是对每个数据点对于 数据分类决定边界的重要性 进行判断。也就是说在训练数据集中, 只有一部分数据对于边界的确定是有作用的 ,而这些数据点 正好在决定边界上 ,这些数据被称为“ 支持向量 ”。 二、支持向量机的核函数 SVM可以将 二维数据 (2 Dimension)转变成 三维数据 (3 Dimension),这称为 将数据投射至高维空间 。 这正是SVM算法的核函数(kernel trick)功能,用的最普遍的用于将数据投射到高维空间的方法是 多项式内核 (Polynomial kernel)和 径向基内核 (Radial Basis Function kernel,RBF)多项式内核就是 将不同的特征乘方处理 。而RBF内核也称为 高斯内核 (Gaussian kernel)

逻辑斯特回归和SVM 对比

夙愿已清 提交于 2020-01-12 01:37:44
逻辑斯特回归和SVM 对比 对于 LogisticRegression 和 LinearSVC,决定正则化强度的权衡参数叫作 C。 C 值越 # 大,对应的正则化越弱。 换句话说,如果参数 C 值较大,那么 LogisticRegression 和 # LinearSVC 将尽可能将训练集拟合到最好,而如果 C 值较小,那么模型更强调使系数向量 # (w)接近于 0。 from sklearn . linear_model import LogisticRegression from sklearn . svm import LinearSVC ​ X , y = mglearn . datasets . make_forge ( ) ​ # 画子图 fig , axes = plt . subplots ( 1 , 2 , figsize = ( 10 , 3 ) ) # 逻辑斯特回归和SVM for model , ax in zip ( [ LinearSVC ( ) , LogisticRegression ( ) ] , axes ) : clf = model . fit ( X , y ) mglearn . plots . plot_2d_separator ( clf , X , fill = False , eps = 0.5 , ax = ax , alpha

《Classification of Trash for Recyclability Status》论文笔记

三世轮回 提交于 2019-12-28 23:06:04
Classification of Trash for Recyclability Status Abstract I. INTRODUCTION II. RELATEDWORK III. DATASET ANDDATACOLLECTION IV. MODEL ANDMETHODS A. Support Vector Machine B. Convolutional Neural Network V. EXPERIMENTS A. Support Vector Machines B. Convolutional Neural Network VI. RESULTS A. Support Vector Machines B. Convolutional Neural Network REFERENCES Abstract ~~~~~~ 将垃圾分类为回收类别的计算机视觉方法可能是处理废物的有效方法。该项目的目的是拍摄单张回收或垃圾的图像,并将其分为玻璃,纸张,金属,塑料,纸板和垃圾六类。我们还创建了一个数据集,其中包含每个类别的大约400-500张图像,这些图像是手工收集的。我们计划向公众发布此数据集。使用的模型是具有尺度不变特征变换(SIFT)特征和卷积神经网络(CNN)的支持向量机(SVM)。我们的实验表明,SVM的性能优于CNN;但是,由于难以找到最佳超参数

处理分类问题常用算法(二)-----算法岗面试题

笑着哭i 提交于 2019-12-25 12:56:51
● 分层抽样的适用范围 参考回答: 分层抽样利用事先掌握的信息,充分考虑了保持样本结构和总体结构的一致性,当总体由差异明显的几部分组成的时候,适合用分层抽样。 ● LR的损失函数 参考回答: M为样本个数, 为模型对样本i的预测结果, 为样本i的真实标签。 ● LR和线性回归的区别 参考回答: 线性回归用来做预测,LR用来做分类。线性回归是来拟合函数,LR是来预测函数。线性回归用最小二乘法来计算参数,LR用最大似然估计来计算参数。线性回归更容易受到异常值的影响,而LR对异常值有较好的稳定性。 ● 生成模型和判别模型基本形式,有哪些? 参考回答: 生成式:朴素贝叶斯、HMM、Gaussians、马尔科夫随机场 判别式:LR,SVM,神经网络,CRF,Boosting 详情:支持向量机 ● 核函数的种类和应用场景。 参考回答: 线性核、多项式核、高斯核。 特征维数高选择线性核 样本数量可观、特征少选择高斯核(非线性核) 样本数量非常多选择线性核(避免造成庞大的计算量) 详情:支持向量机 ● 分类算法列一下有多少种?应用场景。 参考回答: 单一的分类方法主要包括:LR逻辑回归,SVM支持向量机,DT决策树、NB朴素贝叶斯、NN人工神经网络、K-近邻;集成学习算法:基于Bagging和Boosting算法思想,RF随机森林,GBDT,Adaboost,XGboost。 ●

SVM理解

蓝咒 提交于 2019-12-25 12:56:03
一、概念 支持向量机是学习策略的间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。 二、问题类型 1)训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,叫线性可分支持向量机,又称硬间隔支持向量机。 2)当训练数据近似线性可分时,加入松弛变量,通过软间隔最大化,叫线性支持向量机,又称软间隔支持向量机。 3)当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。 三、线性可分支持向量机 点(a 0 ,a 1 )到直线或者平面w 0 x 0 +w 1 x 1 +b的距离如下:              换成向量形式为:              定义超平面(w,b)关于训练集T的几何间隔为超平面(w,b)关于T中所有样本点(x i ,y i )的几何间隔之最小值,几何间隔一般是实例点到超平面的带符号的距离,当样本点被超平面正确分类时就是实例点到超平面的距离。 在线性可分时,r=|w·x+b|等价为y i (w·x i +b),yi=±1,因为当样本被正确分类时,y i (w·x i +b)的乘积亦为正值,r又称为函数间隔 从上述点到平面的距离可以看出,当w和b成倍进行缩放的时候,距离是不变的,因为分子分母正好抵消。所以为了方便计算与优化,我们对w和b进行缩放

SVM matlab 代码详解说明

陌路散爱 提交于 2019-12-18 15:54:27
x=[0 1 0 1 2 -1];y=[0 0 1 1 2 -1];z=[-1 1 1 -1 1 1]; %其中,(x,y)代表二维的数据点,z 表示相应点的类型属性。 data=[1,0;0,1;2,2;-1,-1;0,0;1,1];% (x,y)构成的数据点 groups=[1;1;1;1;-1;-1];%各个数据点的标签 figure; subplot(2,2,1); Struct1 = svmtrain(data,groups,'Kernel_Function','quadratic', 'showplot',true);%data数据,标签,核函数,训练 classes1=svmclassify(Struct1,data,'showplot',true);%data数据分类,并显示图形 title('二次核函数'); CorrectRate1=sum(groups==classes1)/6   subplot(2,2,2); Struct2 = svmtrain(data,groups,'Kernel_Function','rbf', 'RBF_Sigma',0.41,'showplot',true); classes2=svmclassify(Struct2,data,'showplot',true); title('高斯径向基核函数(核宽0.41)');

Deep face recognition using imperfect facial data

假装没事ソ 提交于 2019-12-13 09:27:55
https://www.sciencedirect.com/science/article/pii/S0167739X18331133#b42 1.Abstract 该论文主要研究人脸各个部分对于人脸识别的影响力,以及对人脸图案进行旋转、缩放等操作后人脸识别性能的大小。 2. Related work 在我们的实验中,我们使用一个基于CNN的架构和预先训练好的VGG-Face模型来提取特征。然后我们使用余弦相似度和线性支持向量机两个分类器来测试识别率。 在第3节中,我们解释了我们使用的CNN架构,并简要描述了VGG-Face模型和CS以及基于SVM的分类。 在第4节中,我们讨论了利用部分人脸数据进行的人脸识别实验,并报告了一些有趣的实验结果。 第五部分是对研究结果的反思, 第六部分是对本文的总结。 3. Proposed methodology 对于人脸感知工作,使用CNN,有几个预先训练好的模型可以很容易地用于特征提取,例如VGGF, VGG16, VGG19, OverFeat[23]。在我们的例子中,为了提取特征,我们使用了VGGF的预训练模型,我们将在下面进行讨论。因此,我们采用的方法是使用预先训练好的VGGF模型进行特征提取,然后使用CS[41]或线性SVM进行分类。图5展示了我们的特征提取步骤的概述。 了确定VGGF模型中用于面部特征提取的最佳层

SVM入门(五)线性分类器的求解——问题的描述Part2

非 Y 不嫁゛ 提交于 2019-12-08 02:52:54
从最一般的定义上说,一个求最小值的问题就是一个优化问题(也叫寻优问题,更文绉绉的叫法是 规划 ——Programming),它同样由两部分组成,目标函数和约束条件,可以用下面的式子表示: (式1) 约束条件用函数c来表示,就是constrain的意思啦。你可以看出一共有p+q个约束条件,其中p个是 不等式约束 ,q个 等式约束 。 关于这个式子可以这样来理解:式中的x是自变量,但不限定它的维数必须为1(视乎你解决的问题空间维数,对我们的文本分类来说,那可是成千上万啊)。要求f(x)在哪一点上取得最小值(反倒不太关心这个最小值到底是多少,关键是哪一点),但不是在整个空间里找,而是在约束条件所划定的一个有限的空间里找,这个有限的空间就是优化理论里所说的 可行域 。注意可行域中的每一个点都要求满足所有p+q个条件,而不是满足其中一条或几条就可以(切记,要满足每个约束),同时可行域边界上的点有一个额外好的特性,它们可以使 不等式约束 取得等号!而边界内的点不行。 关于可行域还有个概念不得不提,那就是 凸集 ,凸集是指有这么一个点的集合,其中任取两个点连一条直线,这条线上的点仍然在这个集合内部,因此说“凸”是很形象的(一个反例是,二维平面上,一个月牙形的区域就不是凸集,你随便就可以找到两个点违反了刚才的规定)。 回头再来看我们线性分类器问题的描述,可以看出更多的东西。 (式2) 在这个问题中