怎么做网站网站代理,创网易账号,江苏网站建设怎么样,cms建站系统哪个好文章目录 机器学习逻辑回归#xff08;LR#xff09;基本原理为什么 LR 要使用 sigmoid 函数#xff1f;LR 可以用核函数么#xff1f;为什么 LR 用交叉熵损失而不是平方损失#xff1f;LR 能否解决非线性分类问题#xff1f;LR为什么要离散特征#xff1f;逻辑回归是处… 文章目录 机器学习逻辑回归LR基本原理为什么 LR 要使用 sigmoid 函数LR 可以用核函数么为什么 LR 用交叉熵损失而不是平方损失LR 能否解决非线性分类问题LR为什么要离散特征逻辑回归是处理线性问题还是非线性问题的 线性回归基本原理线性回归与逻辑回归LR的区别 支持向量机SVM基本原理支持向量中的向量是指什么手推SVMLR 与 SVM的区别和联系SVM 中有哪些核函数SVM 的对偶问题SMO 算法原理SVM 中的优化技术有哪些SVM 的惩罚系数如何确定正则化参数对支持向量数的影响如何解决线性不可分问题软间隔和硬间隔Hinge Loss 机器学习
逻辑回归LR
基本原理
逻辑回归Logistic RegressionLR也称为对数几率回归又称为逻辑斯谛回归。
知识点提炼
分类经典的二分类算法逻辑回归就是这样的一个过程面对一个回归或者分类问题建立代价函数然后通过优化方法迭代求解出最优的模型参数然后测试验证我们这个求解的模型的好坏。Logistic 回归虽然名字里带“回归”但是它实际上是一种分类方法主要用于两分类问题即输出只有两种分别代表两个类别回归模型中y 是一个定性变量比如 y 0 或 1logistic 方法主要应用于研究某些事件发生的概率。逻辑回归的本质极大似然估计逻辑回归的激活函数Sigmoid逻辑回归的代价函数交叉熵
逻辑回归的优缺点
优点
1速度快适合二分类问题
2简单易于理解直接看到各个特征的权重
3能容易地更新模型吸收新的数据
缺点
对数据和场景的适应能力有局限性不如决策树算法适应性那么强
逻辑回归中最核心的概念是 Sigmoid 函数Sigmoid函数可以看成逻辑回归的激活函数。
下图是逻辑回归网络 对数几率函数Sigmoid y σ ( z ) 1 1 e − z y \sigma (z) \frac{1}{1e^{-z}} yσ(z)1e−z1 通过对数几率函数的作用我们可以将输出的值限制在区间[01]上p(x) 则可以用来表示概率 p(y1|x)即当一个x发生时y被分到1那一组的概率。可是等等我们上面说 y 只有两种取值但是这里却出现了一个区间[0, 1]这是什么鬼其实在真实情况下我们最终得到的y的值是在 [0, 1] 这个区间上的一个数然后我们可以选择一个阈值通常是 0.5当 y 0.5 时就将这个 x 归到 1 这一类如果 y 0.5 就将 x 归到 0 这一类。但是阈值是可以调整的比如说一个比较保守的人可能将阈值设为 0.9也就是说有超过90%的把握才相信这个x属于 1这一类。了解一个算法最好的办法就是自己从头实现一次。下面是逻辑回归的具体实现。
Regression 常规步骤
寻找h函数即预测函数构造J函数损失函数想办法迭代使得J函数最小并求得回归参数θ
函数h(x)的值有特殊的含义它表示结果取1的概率于是可以看成类1的后验估计。因此对于输入x分类结果为类别1和类别0的概率分别为
P(y1│x;θ)hθ (x)
P(y0│x;θ)1-hθ (x)
代价函数
逻辑回归一般使用交叉熵作为代价函数。关于代价函数的具体细节请参考代价函数。
交叉熵是对「出乎意料」译者注原文使用suprise的度量。神经元的目标是去计算函数 y, 且 y y(x)。但是我们让它取而代之计算函数 a, 且 a a(x) 。假设我们把 a 当作 y 等于 1 的概率1−a 是 y 等于 0 的概率。那么交叉熵衡量的是我们在知道 y 的真实值时的平均「出乎意料」程度。当输出是我们期望的值我们的「出乎意料」程度比较低当输出不是我们期望的我们的「出乎意料」程度就比较高。
交叉熵代价函数如下所示 J ( w ) − l ( w ) − ∑ i 1 n y ( i ) l n ( ϕ ( z ( i ) ) ) ( 1 − y ( i ) ) l n ( 1 − ϕ ( z ( i ) ) ) J(w)-l(w)-\sum_{i 1}^n y^{(i)}ln(\phi(z^{(i)})) (1 - y^{(i)})ln(1-\phi(z^{(i)})) J(w)−l(w)−i1∑ny(i)ln(ϕ(z(i)))(1−y(i))ln(1−ϕ(z(i))) J ( ϕ ( z ) , y ; w ) − y l n ( ϕ ( z ) ) − ( 1 − y ) l n ( 1 − ϕ ( z ) ) J(\phi(z),y;w)-yln(\phi(z))-(1-y)ln(1-\phi(z)) J(ϕ(z),y;w)−yln(ϕ(z))−(1−y)ln(1−ϕ(z))
注为什么要使用交叉熵函数作为代价函数而不是平方误差函数请参考逻辑回归算法之交叉熵函数理解
逻辑回归伪代码
初始化线性函数参数为1
构造sigmoid函数
重复循环I次计算数据集梯度更新线性函数参数
确定最终的sigmoid函数
输入训练测试数据集
运用最终sigmoid函数求解分类逻辑回归算法之Python实现 TODO
参考资料
Logistic Regression《统计学习方法》 (蓝书) 第6章 P77页《机器学习》 (西瓜书) 第3章 P57页《Machine Learning》 吴恩达 Logistic Regression逻辑回归 - 理论篇逻辑回归(logistic regression)的本质——极大似然估计机器学习算法与Python实践之七逻辑回归Logistic Regression机器学习之Logistic回归与Python实现【机器学习】逻辑回归Logistic Regression机器学习算法–逻辑回归原理介绍逻辑回归算法面经Logistic Regression 模型简介
为什么 LR 要使用 sigmoid 函数
1.广义模型推导所得 2.满足统计的最大熵模型 3.性质优秀方便使用Sigmoid函数是平滑的而且任意阶可导一阶二阶导数可以直接由函数值得到不用进行求导这在实现中很实用
参考资料
为什么逻辑回归 模型要使用 sigmoid 函数
LR 可以用核函数么 TODO
为什么 LR 用交叉熵损失而不是平方损失 TODO
LR 能否解决非线性分类问题 TODO
参考资料
逻辑斯蒂回归能否解决非线性分类问题
LR为什么要离散特征 TODO
逻辑回归是处理线性问题还是非线性问题的 TODO
线性回归
基本原理 TODO
参考资料
通俗理解线性回归一
线性回归与逻辑回归LR的区别
参考资料
线性回归和逻辑回归的比较
支持向量机SVM
基本原理
支持向量机supporr vector machineSVM是一种二类分类模型该模型是定义在特征空间上的间隔最大的线性分类器。间隔最大使它有区别于感知机支持向量机还包括核技巧这使它成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化可形式化为一个求解凸二次规划的最小化问题。
知识点提炼
SVM核函数 多项式核函数高斯核函数字符串核函数 SMOSVM损失函数
支持向量机的学习算法是求解凸二次规划的最优化算法。
支持向量机学习方法包含构建由简至繁的模型
线性可分支持向量机线性支持向量机非线性支持向量机使用核函数
当训练数据线性可分时通过硬间隔最大化hard margin maximization学习一个线性的分类器即线性可分支持向量机又成为硬间隔支持向量机
当训练数据近似线性可分时通过软间隔最大化soft margin maximization也学习一个线性的分类器即线性支持向量机又称为软间隔支持向量机
当训练数据不可分时通过核技巧kernel trick及软间隔最大化学习非线性支持向量机。
注以上各SVM的数学推导应该熟悉硬间隔最大化几何间隔—学习的对偶问题—软间隔最大化引入松弛变量—非线性支持向量机核技巧。
SVM的主要特点
1非线性映射-理论基础
2最大化分类边界-方法核心
3支持向量-计算结果
4小样本学习方法
5最终的决策函数只有少量支持向量决定避免了“维数灾难”
6少数支持向量决定最终结果—-可“剔除”大量冗余样本算法简单具有鲁棒性体现在3个方面
7学习问题可表示为凸优化问题—-全局最小值
8可自动通过最大化边界控制模型但需要用户指定核函数类型和引入松弛变量
9适合于小样本优秀泛化能力因为结构风险最小
10泛化错误率低分类速度快结果易解释
SVM为什么采用间隔最大化
当训练数据线性可分时存在无穷个分离超平面可以将两类数据正确分开。
感知机利用误分类最小策略求得分离超平面不过此时的解有无穷多个。
线性可分支持向量机利用间隔最大化求得最优分离超平面这时解是唯一的。另一方面此时的分隔超平面所产生的分类结果是最鲁棒的对未知实例的泛化能力最强。
然后应该借此阐述几何间隔函数间隔及从函数间隔—求解最小化1/2 ||w||^2 时的w和b。即线性可分支持向量机学习算法—最大间隔法的由来。
为什么要将求解SVM的原始问题转换为其对偶问题
对偶问题往往更易求解当我们寻找约束存在时的最优点的时候约束的存在虽然减小了需要搜寻的范围但是却使问题变得更加复杂。为了使问题变得易于处理我们的方法是把目标函数和约束全部融入一个新的函数即拉格朗日函数再通过这个函数来寻找最优点。自然引入核函数进而推广到非线性分类问题
为什么SVM要引入核函数
当样本在原始空间线性不可分时可将样本从原始空间映射到一个更高维的特征空间使得样本在这个特征空间内线性可分。
SVM核函数有哪些
线性Linear核函数主要用于线性可分的情形。参数少速度快。多项式核函数高斯RBF核函数主要用于线性不可分的情形。参数多分类结果非常依赖于参数。Sigmoid核函数拉普拉斯Laplac核函数
注如果feature数量很大跟样本数量差不多建议使用LR或者Linear kernel的SVM。如果feature数量较少样本数量一般建议使用Gaussian Kernel的SVM。
SVM如何处理多分类问题
一般有两种做法 直接法直接在目标函数上修改将多个分类面的参数求解合并到一个最优化问题里面。看似简单但是计算量却非常的大。 间接法对训练器进行组合。其中比较典型的有一对一和一对多。 一对多对每个类都训练出一个分类器由svm是二分类所以将此而分类器的两类设定为目标类为一类其余类为另外一类。这样针对k个类可以训练出k个分类器当有一个新的样本来的时候用这k个分类器来测试那个分类器的概率高那么这个样本就属于哪一类。这种方法效果不太好bias比较高。一对一针对任意两个类训练出一个分类器如果有k类一共训练出C(2,k) 个分类器这样当有一个新的样本要来的时候用这C(2,k) 个分类器来测试每当被判定属于某一类的时候该类就加一最后票数最多的类别被认定为该样本的类。
SVM中硬间隔和软间隔
硬间隔分类即线性可分支持向量机软间隔分类即线性不可分支持向量机利用软间隔分类时是因为存在一些训练集样本不满足函数间隔泛函间隔大于等于1的条件于是加入一个非负的参数 ζ 松弛变量让得出的函数间隔加上 ζ 满足条件。于是软间隔分类法对应的拉格朗日方程对比于硬间隔分类法的方程就多了两个参数一个ζ 一个 β但是当我们求出对偶问题的方程时惊奇的发现这两种情况下的方程是一致的。下面我说下自己对这个问题的理解。
我们可以先考虑软间隔分类法为什么会加入ζ 这个参数呢硬间隔的分类法其结果容易受少数点的控制这是很危险的由于一定要满足函数间隔大于等于1的条件而存在的少数离群点会让算法无法得到最优解于是引入松弛变量从字面就可以看出这个变量是为了缓和判定条件所以当存在一些离群点时我们只要对应给他一个ζi就可以在不变更最优分类超平面的情况下让这个离群点满足分类条件。
综上我们可以看出来软间隔分类法加入ζ 参数使得最优分类超平面不会受到离群点的影响不会向离群点靠近或远离相当于我们去求解排除了离群点之后样本点已经线性可分的情况下的硬间隔分类问题所以两者的对偶问题是一致的。
支持向量中的向量是指什么 TODO
手推SVM
参考资料
Support-vector machine支持向量机通俗导论理解SVM的三层境界数据挖掘机器学习面试–SVM面试常考问题机器学习实战教程八支持向量机原理篇之手撕线性SVM支持向量机SVM入门理解与推导数据挖掘领域十大经典算法之—SVM算法超详细附代码
LR 与 SVM的区别和联系
相同点
第一LR和SVM都是分类算法。
看到这里很多人就不会认同了因为在很大一部分人眼里LR是回归算法。我是非常不赞同这一点的因为我认为判断一个算法是分类还是回归算法的唯一标准就是样本label的类型如果label是离散的就是分类算法如果label是连续的就是回归算法。很明显LR的训练数据的label是“0或者1”当然是分类算法。其实这样不重要啦暂且迁就我认为它是分类算法吧再说了SVM也可以回归用呢。
第二如果不考虑核函数LR和SVM都是线性分类算法也就是说他们的分类决策面都是线性的。
这里要先说明一点那就是LR也是可以用核函数的至于为什么通常在SVM中运用核函数而不在LR中运用后面讲到他们之间区别的时候会重点分析。总之原始的LR和SVM都是线性分类器这也是为什么通常没人问你决策树和LR什么区别决策树和SVM什么区别你说一个非线性分类器和一个线性分类器有什么区别
第三LR和SVM都是监督学习算法。
这个就不赘述什么是监督学习什么是半监督学习什么是非监督学习了。
第四LR和SVM都是判别模型。
判别模型会生成一个表示P(Y|X)的判别函数或预测模型而生成模型先计算联合概率p(Y,X)然后通过贝叶斯公式转化为条件概率。简单来说在计算判别模型时不会计算联合概率而在计算生成模型时必须先计算联合概率。或者这样理解生成算法尝试去找到底这个数据是怎么生成的产生的然后再对一个信号进行分类。基于你的生成假设那么那个类别最有可能产生这个信号这个信号就属于那个类别。判别模型不关心数据是怎么生成的它只关心信号之间的差别然后用差别来简单对给定的一个信号进行分类。常见的判别模型有KNN、SVM、LR常见的生成模型有朴素贝叶斯隐马尔可夫模型。当然这也是为什么很少有人问你朴素贝叶斯和LR以及朴素贝叶斯和SVM有什么区别哈哈废话是不是太多。
不同点
第一本质上是其损失函数loss function不同。
注lr的损失函数是 cross entropy loss adaboost的损失函数是 expotional loss ,svm是hinge loss常见的回归模型通常用 均方误差 loss。
逻辑回归的损失函数 SVM的目标函数 不同的loss function代表了不同的假设前提也就代表了不同的分类原理也就代表了一切简单来说逻辑回归方法基于概率理论假设样本为1的概率可以用sigmoid函数来表示然后通过极大似然估计的方法估计出参数的值具体细节参考逻辑回归。支持向量机基于几何间隔最大化原理认为存在最大几何间隔的分类面为最优分类面具体细节参考支持向量机通俗导论理解SVM的三层境界
第二支持向量机只考虑局部的边界线附近的点而逻辑回归考虑全局远离的点对边界线的确定也起作用。
当你读完上面两个网址的内容深入了解了LR和SVM的原理过后会发现影响SVM决策面的样本点只有少数的结构支持向量当在支持向量外添加或减少任何样本点对分类决策面没有任何影响而在LR中每个样本点都会影响决策面的结果。用下图进行说明
支持向量机改变非支持向量样本并不会引起决策面的变化 逻辑回归中改变任何样本都会引起决策面的变化 理解了这一点有可能你会问然后呢有什么用呢有什么意义吗对使用两种算法有什么帮助么一句话回答
因为上面的原因得知线性SVM不直接依赖于数据分布分类平面不受一类点影响LR则受所有数据点的影响如果数据不同类别strongly unbalance一般需要先对数据做balancing。引自http://www.zhihu.com/question/26768865/answer/34078149
第三在解决非线性问题时支持向量机采用核函数的机制而LR通常不采用核函数的方法。
这个问题理解起来非常简单。分类模型的结果就是计算决策面模型训练的过程就是决策面的计算过程。通过上面的第二点不同点可以了解在计算决策面时SVM算法里只有少数几个代表支持向量的样本参与了计算也就是只有少数几个样本需要参与核计算即kernal machine解的系数是稀疏的。然而LR算法里每个样本点都必须参与决策面的计算过程也就是说假设我们在LR里也运用核函数的原理那么每个样本点都必须参与核计算这带来的计算复杂度是相当高的。所以在具体应用时LR很少运用核函数机制。
第四线性SVM依赖数据表达的距离测度所以需要对数据先做normalizationLR不受其影响。引自http://www.zhihu.com/question/26768865/answer/34078149
一个机遇概率一个机遇距离
第五SVM的损失函数就自带正则损失函数中的1/2||w||^2项这就是为什么SVM是结构风险最小化算法的原因而LR必须另外在损失函数上添加正则项
以前一直不理解为什么SVM叫做结构风险最小化算法所谓结构风险最小化意思就是在训练误差和模型复杂度之间寻求平衡防止过拟合从而达到真实误差的最小化。未达到结构风险最小化的目的最常用的方法就是添加正则项后面的博客我会具体分析各种正则因子的不同这里就不扯远了。但是你发现没SVM的目标函数里居然自带正则项再看一下上面提到过的SVM目标函数
SVM目标函数 有木有那不就是L2正则项吗
不用多说了如果不明白看看L1正则与L2正则吧参考http://www.mamicode.com/info-detail-517504.html
http://www.zhihu.com/question/26768865/answer/34078149
快速理解LR和SVM的区别
两种方法都是常见的分类算法从目标函数来看区别在于逻辑回归采用的是logistical losssvm采用的是hinge loss。这两个损失函数的目的都是增加对分类影响较大的数据点的权重减少与分类关系较小的数据点的权重。SVM的处理方法是只考虑support vectors也就是和分类最相关的少数点去学习分类器。而逻辑回归通过非线性映射大大减小了离分类平面较远的点的权重相对提升了与分类最相关的数据点的权重。两者的根本目的都是一样的。此外根据需要两个方法都可以增加不同的正则化项如l1,l2等等。所以在很多实验中两种算法的结果是很接近的。但是逻辑回归相对来说模型更简单好理解实现起来特别是大规模线性分类时比较方便。而SVM的理解和优化相对来说复杂一些。但是SVM的理论基础更加牢固有一套结构化风险最小化的理论基础虽然一般使用的人不太会去关注。还有很重要的一点SVM转化为对偶问题后分类只需要计算与少数几个支持向量的距离这个在进行复杂核函数计算时优势很明显能够大大简化模型和计算量。
SVM与LR的区别与联系
联系1分类二分类 2可加入正则化项
区别1LR–参数模型SVM–非参数模型2目标函数LR—logistical lossSVM–hinge loss 3SVM–support vectorsLR–减少较远点的权重 4LR–模型简单好理解精度低可能局部最优SVM–理解、优化复杂精度高全局最优转化为对偶问题—简化模型和计算 5LR可以做的SVM可以做线性可分SVM能做的LR不一定能做线性不可分
总结一下
Linear SVM和LR都是线性分类器Linear SVM不直接依赖数据分布分类平面不受一类点影响LR则受所有数据点的影响如果数据不同类别strongly unbalance一般需要对数据先做balancing。Linear SVM依赖数据表打对距离测度所以需要对数据先做normalizationLR不受影响Linear SVM依赖penalty的系数实验中需要做validationLinear SVM的LR的performance都会收到outlier的影响就敏感程度而言无法给出明确结论。
参考资料
LR与SVM的异同SVM和logistic回归分别在什么情况下使用Linear SVM 和 LR 有什么异同
SVM 中有哪些核函数 TODO
参考资料
svm常用核函数及选择核函数的方法SVM由浅入深的尝试五核函数的理解
SVM 的对偶问题 TODO
SMO 算法原理 TODO
SVM 为什么可以处理非线性问题 TODO
SVM 中的优化技术有哪些 TODO
SVM 的惩罚系数如何确定 TODO
正则化参数对支持向量数的影响 TODO
如何解决线性不可分问题 TODO
软间隔和硬间隔 TODO
Hinge Loss TODO